程序作业管理-背景后台运行管理
1、概念
前景:你可以控制与下达指令的这个环境称为前景的工作 (foreground);
背景:可以自行运作的工作,你无法使用 [ctrl]+c 终止他,可使用 bg/fg 呼叫该工作;
背景中的程序又可以分为暂停和运行中;
系统背景:如果是背景,则退出时就会中断,如果是系统背景,则退出终端时还可以运行。
2、直接将指令丢到背景中‘执行’的 &
直接在命令的最后加上&即可,如[root@www ~]# tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
3、将‘目前’的工作丢到背景中‘暂停’:[ctrl]-z
4、观察目前的背景工作状态: jobs
[root@www ~]# jobs [-lrs]
选项与参数:
-l :除了列出 job number 与指令串之外,同时列出 PID 的号码;
-r :仅列出正在背景 run 的工作;
-s :仅列出正在背景当中暂停 (stop) 的工作。
5、将背景工作拿到前景来处理:fg
[root@www ~]# fg %jobnumber
选项与参数:
%jobnumber :jobnumber 为工作号码(数字)。注意,那个 % 是可有可无的!
[1]+ Stopped 这里的+表示如果直接输入fg则取的是这个
6、让工作在背景下的状态变成运作中: bg %工作号
7、管理背景当中的工作: kill
[root@www ~]# kill -signal %jobnumber
[root@www ~]# kill -l
选项与参数:
-l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?
signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
-1 :重新读取一次参数的设定档 (类似 reload);
-2 :代表与由键盘输入 [ctrl]-c 同样的动作;
-9 :立刻强制删除一个工作;
-15:以正常的程序方式终止一项工作。与 -9 是不一样的。
kill 后面接的数字预设会是 PID ,如果想要管理 bash 的工作控制,就得要加上 %数字 了, 这点也得特别留意才行喔!
8、离线运行,即放到系统背景中
[root@www ~]# nohup [指令与参数] <==在终端机前景中工作
[root@www ~]# nohup [指令与参数] & <==在终端机背景中工作
直接输nohup可查询目前在执行的