[转] linux中巧用ctrl-z后台运行程序

背景:

最近在执行一些长时间程序的时候,老是一不小心忘了输入‘&’ , 结果终端就卡在那里了,很是郁闷

以前总是再新开一个终端。

今天翻看《鸟哥的linux私房菜》的时候,发现介绍vim的时候介绍了一个ctrl-z命令可以将当前的程序切到后台,很好用!可是怎么再切回去呢?搜了下,见下文:

-----------转载自:http://blog.chinaunix.net/uid-10219166-id-2968756.html

----------- 以下是原文
    假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,终止这个程序,然后可以看到系统提示:

[1]+ Stopped /root/bin/rsync.sh

然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)

#bg 1

[1]+ /root/bin/rsync.sh &

用 jobs 命令查看正在运行的任务:

#jobs

[1]+ Running /root/bin/rsync.sh &

如果想把它调回到前台运行,可以用

#fg 1

/root/bin/rsync.sh

这样,你在控制台上就只能等待这个任务完成了.

& 将指令丢到后台中去执行

[ctrl]+z 将前台任务丢到后台中暂停

jobs 查看后台的工作状态

fg %jobnumber 将后台的任务拿到前台来处理

bg %jobnumber 将任务放到后台中去处理

kill 管理后台的任务

命令运行时使用CTRL+Z,强制当前进程转为后台,并使之停止。

1. 使进程恢复运行(后台)

(1)使用命令bg

Example:

[email protected]:~/unp/tcpcliserv$ ./tcpserv01

*这里使用CTRL+Z,此时serv01是停止状态*

[1]+ Stopped ./tcpserv01

[email protected]:~/unp/tcpcliserv$ bg

[1]+ ./tcpserv01 & *此时serv01运行在后台*

[email protected]:~/unp/tcpcliserv$

(2)如果用CTRL+Z停止了几个程序呢?

Example:

zui[email protected]:~/unp/tcpcliserv$ jobs

[1]- Running ./tcpserv01 &

[2]+ Stopped ./tcpcli01 127.0.0.1

[email protected]:~/unp/tcpcliserv$ bg %1

bash: bg:任务 1 已转入后台 *后台运行*

 2. 使进程恢复至前台运行

Example:

[email protected]:~/unp/tcpcliserv$ ./tcpserv04

[1]+ Stopped ./tcpserv04

[email protected]:~/unp/tcpcliserv$ fg

。/tcpserv04

 总结:

(1) CTRL+Z停止进程并放入后台

(2) jobs 显示当前暂停的进程

(3) bg %N 使第N个任务在后台运行(%前有空格)

(4) fg %N 使第N个任务在前台运行

默认bg,fg不带%N时表示对最后一个进程操作!

--------- 以上是原文

后记: 《鸟哥的linux私房菜》后面也有章节介绍fg和bg,只是当时还没看到

时间: 2024-10-12 23:55:17

[转] linux中巧用ctrl-z后台运行程序的相关文章

Linux中如何让命令在后台运行

1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简单,只用执行fg这个命令,就可以了. 3.可能有些同学又要问了,我现在已经在前台运行的命令,我能把它放到后台去运行么?当然可以了,只要执行ctrl+z就可以做到了.是不是很赞啊! 4.说到这里可能有些同学又要问了,如果我有多个进程在后台运行,那如何恢复到前台来执行呢?这时候就要用到jobs这个命令了,通过j

linux中安装redis与redis后台运行和集群

1.安装redis weget http://download.redis.io/releases/redis-3.2.6.tar.gz 解压并移动到自定义的一个文件夹中(/software/redis) 解压命令 tar -zxvf 文件名 移动命令 mv 当前文件夹 目标文件夹 最终结构: /software/redis/ 2.到redis目录下执行命令 # make # make install 安装完成之后默认会/usr/local/bin/ 目录下面可以看到 redis-server

Linux实战案例(8)后台运行命令 nohup command > myout.file 2>&1

Linux命令后台运行 转自北国的雨,谢谢:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式:1. command & : 后台运行,你关掉终端会停止运行2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介 Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.在 Windows 上面,我们要么让一个程序作为服

screen后台运行程序

用screen 在后台运行程序 我们常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了.这时,我们可以用screen命令解决这个问题. screen命令可以实现当前窗口与任务分离,我们即使离线了,服务器仍在后台运行任务.当我们重新登录服务器,可以读取窗口线程,重新连接任务窗口. 一:主要功能 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复.这一点对于远

shell 后台运行程序

shell 后台运行程序 http://blog.csdn.net/courage89/article/details/10561041 & 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 jobs 查看当前有多少在后台运行的命令 fg 将后台中的命令调至前台继续运行 如果后台 中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(

angularJS开启服务器后台运行程序,找不到scripts/web-server.js

学习angularJS时,教程里说使用node scripts/web-server.js开启服务器后台运行程序.一直出错.后来发现原因是这是老版本里的命令.现在都是用sudo npm start就可以了 运行完sudo npm start,再开启karma测试 sudo npm test 然后再浏览器中输入http://localhost:8000/app/index.html即可访问angularJS教程里的index.html. angularJS开启服务器后台运行程序,找不到script

五、清理mac缓存和关闭后台运行程序

一.清理mac 缓存  1.用鼠标点击桌面,然后按快捷键Command+Shift+G前往文件夹 2.输入路径:~/Library/Caches/ 3.清除所有的数据,把所有的Caches文件夹得都行都删除 二.关闭后台运行程序 1.打开Launchpad中的活动监视器 2.双击可以退出,正在运行的程序

Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别(转)

一.后台进程管理命令 fg.bg.jobs.&.ctrl + z.ctrl + c.ctrl + \.ctrl + d1. &加在一个命令的最后,可以把这个命令放到后台执行 ,如firefox &, 2.ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行 3.jobs查看当前有多少在后台运行的命令jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),sh

linux中启动 java -jar 后台运行程序

直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 & 符号 2. (1)执行java -jar xxx.jar后 (2)ctrl+z 退出到控制台,执行 bg (3)exit 完成以上3步,退出SHELL后,jar服务一直在后台运行. 3. nohup java -jar xxxx.jar & 将java -jar xxxx.jar 加入