bash只能管理自己的工作二不能管理其他的bash工作,所以即使你是root也不能将别人的bash底下的job给它拿过来执行,此外job管理又分为前台和后台,然后再后台里面的工作状态又可以分为stopped(暂停)和running(正在运行中)。
直接将指令丢到后台中&
如果我们在只有一个bash的情况下,想执行多个任务,那么可以利用&将某些工作直接丢到后台中去执行。
举例子:
root@iZj6cavb11mttng8rmycibZ:~/zsy# ls -l tt.txt & [1] 27644 root@iZj6cavb11mttng8rmycibZ:~/zsy# -rw-r--r-- 1 root root 173 May 12 10:17 tt.txt [1]+ Done ls --color=auto -l tt.txt
在中括号中的数字1位工作号码,该号码与bash的控制有关。
后续的27644,就是这个job在系统中的PID
下边的命令行就是执行的结果
Done 表示执行完成
总结: & 最大的好处就是不怕被ctrl+c 中断,可以去执行多个任务。但是要注意到该工作如果有输出会影响你前台工作。可以把该job生成的数据流重定向到一个文件中,ls -l tt.txt&>1.txt&,这样就不会影响到前台了。
将目前的工作暂停到后台:ctrl+z
试想一个情况,我们在vim一个文件,这时候需要查找一个文件的路径,我们这时候不需要退出,只需要暂停就可可以
步骤:在一般模式下输入 ctrl + z
root@iZj6cavb11mttng8rmycibZ:~/zsy# vim tt.txt [1]+ Stopped vim tt.txt root@iZj6cavb11mttng8rmycibZ:~/zsy#
+ 代表最后被放进去的工作
- 如果有的话表示倒数第二个被放进去的,超过两个就不会在出现了。
查看当前后台的工作状态
jobs -l
root@iZj6cavb11mttng8rmycibZ:~/zsy# jobs -l [1]- 27746 Stopped vim tt.txt [2]+ 27766 Stopped vim tt.txt
将后台的工作拿到前台来处理fg
root@iZj6cavb11mttng8rmycibZ:~/zsy# jobs -l [1]+ 27885 Stopped vim tt.txt root@iZj6cavb11mttng8rmycibZ:~/zsy# fg 1
fg 后边跟的数字就是【】中的数字
让暂停在后台的任务在后台运行起来bg
真正用到的时候去翻看鸟叔的704
删除后台运行的任务 kill
kill -l 列出目前kill能够使用的信号
root@iZj6cavb11mttng8rmycibZ:~/zsy# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
kill -9 强制删除后台任务,后边可以跟pid或【】中的数据
如果是pid 这样写 kill -9 27944
如果是【】中的数字的话 kill -9 %1





脱机管理问题nohup
我们上述讲的把任务放到后台,指的是和终端机有关的后台,简单的来说就是和你的xshell有关的后台,如果你是用xsell连接到你的linux的主机中,并且将你的工作以&的方式放到后台,在工作尚未结束时你脱机了,那么保存在
后台的任务是不会继续执行的,而是会中断掉。
使用nohup这个指令来处理,它可以让你在脱机或注销系统后,还能让工作继续进行。
语法:
nohup 指令与参数 #在终端机的前台工作 nohup 指令与参数& #在终端机的后台工作
注意当执行bash的时候,输出日志会导入nohup.out 文件中,你可以查看它
浙公网安备 33010602011771号