Linux进程与作业的区别及相关命令
在Linux系统上运行的所有东西都可以称之为一个进程.例如,一个简单的helloworld程序,在终端上输入ls命令等等. 一个正常运行的进程称之为作业,一个作业可以启动多个进程,例如作业ls -lrt | grep *.txt就启动了两个进程. 进程和作业相关的命令主要有:kill、disown、wait、fg、bg、jobs fg、bg、jobs只接受作业号为参数. kill、disown、wait即可接受作业号为参数,又可接受进程号为参数. jobs 命令显示了当前 shell 环境中已启动的作业状态. kill命令可以用来终止一个进程 [alex@cgdp alex]$ sleep 100& [1] 6273 [alex@cgdp alex]$ ps PID TTY TIME CMD 6230 pts/0 00:00:00 bash 6273 pts/0 00:00:00 sleep (待删除的进程) 6274 pts/0 00:00:00 ps [alex@cgdp alex]$ kill -9 6273 [alex@cgdp alex]$ ps PID TTY TIME CMD 6230 pts/0 00:00:00 bash 6275 pts/0 00:00:00 ps [1] Killed sleep 100 (进程已被删除) disown命令可以用来删除作业 [alex@cgdp alex]$ ls -l | sleep 200& [1] 6326 [alex@cgdp alex]$ jobs [1] Running ls --color=tty -l | sleep 200 & [alex@cgdp alex]$ disown %1 [alex@cgdp alex]$ jobs [alex@cgdp alex]$ fg命令把后台运行的作业放到前台运行,bg重启一个挂起的作业. 可以用 CTRL z 将当前进程挂起到后台暂停运行,执行一些别的操作,然后再用 fg 来将挂起的进程重新放回前台(也 可用 bg 来将挂起的进程放在后台)继续运行. wait命令停止脚本的运行,直到后台运行的所有作业都结束为止,或者直到指定作业号或进程号为选项的作业结束为止.可 以使用wait 命令来防止在后台作业没完成(这会产生一个孤儿进程)之前退出脚本. 例如: 写一个简单的脚本test #!/bin/sh ls -l& echo "done" 运行: [alex@cgdp shell]$ ./test 拥有帝国一切,皆有可能。欢迎访问phome.net done [alex@cgdp shell]$ total 4 -rwxrwxr-x 1 alex alex 30 May 5 21:15 test 使用wait命令重写脚本test #!/bin/sh ls -l& wait echo "done" 运行: [alex@cgdp shell]$ ./test total 4 -rwxrwxr-x 1 alex alex 35 May 5 21:19 test done 拥有帝国一切,皆有可能。欢迎访问phome.net |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |