bash 分为前台和后台 ,后台的工作状态又分为暂停和运行中。
直接将命令丢到后台去“执行”的 &
1:本来一个bash环境只能执行一个工作,要想执行多个工作就可以将某些工作放到后台去执行。
好处: 不怕被ctrl + c中断,
坏处:但是要注意工作的数据流向, 一些错误信息会直接影响前台,而你还无法停止按ctrl +c 没用。
解决办法: 利用数据流重定向,将输出数据传送到某个文件中,
2:后台的操作:
1:将目前的工作丢到后台中“暂停” ctrl-z
例如 vi 1.c 在一般模式下按ctrl-z
find / -print 再按ctrl-z
就可以再一次将它放到后台去暂停。
2: 查看目前的后台的工作状态: jobs
-l: 会列出后台每个进程的信息包括PID
-r: 会列出正在后台运行的工作
-s: 仅列出正在后台暂停的工作
×××
+-号: +号代表最近被放到后台的工作,-号代表最近最后第二次放到后台中的工作号码,而超过做后第三个以后的工作就不会有+——号了。
1,2…的数字代表工作号码
3:将后台的工作拿到前台来处理: fg %jobnumber//1, 2
4: 让工作在后台下的状态变成运行中: bg//后台正在运行的工作不能用ctrl-z进行停止
5: 管理后台中的工作:kill
-l: 列出都有那些可以接受的信号。 经常用的有三个信号
-1: 重新读取一次参数的配置文件,重启已经被终止的程序
-2: 与键盘输入ctrl-c是一样的中断一个进程
-9: 强行删除一个工作
-15:以正常的方式终止一项工作
-17: 相当于ctrl-z
kill -9 %1; jobs
kill -signal pid / %number 工作号码
工作管理的“后台”:在终端机写可以避免ctrl-c中断的情景,并不是放到系统的后台,工作管理的后台与终端机还是有联系的。