Linux进程与作业的区别及相关命令(1)


进程是什么?作业又是什么?在Linux系统上运行的所有东西都可以称之为一个进程。例如,一个简单的helloworld程序,在终端上输入ls命令等等。

一个正常运行的进程称之为作业,一个作业可以启动多个进程,例如作业 ls -lrt | grep *.txt 就启动了两个进程。

进程和作业相关的命令主要有:kill、disown、wait、fg、bg、jobs

fg、bg、jobs只接受作业号为参数。

kill、disown、wait即可接受作业号为参数,又可接受进程号为参数。

jobs 命令显示了当前 shell 环境中已启动的作业状态。

  1. [alex@cgdp alex]$ sleep 100&  
  2.  
  3. [1] 6273  
  4.  
  5. [alex@cgdp alex]$ ps  
  6.  
  7. PID TTY          TIME CMD  
  8.  
  9. 6230 pts/0    00:00:00 bash  
  10.  
  11. 6273 pts/0    00:00:00 sleep (待删除的进程)  
  12.  
  13. 6274 pts/0    00:00:00 ps  
  14.  
  15. [alex@cgdp alex]$ kill -9 6273  
  16.  
  17. [alex@cgdp alex]$ ps  
  18.  
  19. PID TTY          TIME CMD  
  20.  
  21. 6230 pts/0    00:00:00 bash  
  22.  
  23. 6275 pts/0    00:00:00 ps  
  24.  
  25. [1]+  Killed                  sleep 100 (进程已被删除)  
  26.  
  27. disown命令可以用来删除作业  
  28.  
  29. [alex@cgdp alex]$ ls -l | sleep 200&  
  30.  
  31. [1] 6326  
  32.  
  33. [alex@cgdp alex]$ jobs  
  34.  
  35. [1]+  Running                 ls --color=tty -l | sleep 200 &  
  36.  
  37. [alex@cgdp alex]$ disown %1  
  38.  
  39. [alex@cgdp alex]$ jobs  
  40.  
  41. [alex@cgdp alex]$ 

kill命令可以用来终止一个进程

fg命令把后台运行的作业放到前台运行,bg重启一个挂起的作业。

可以用 CTRL+z 将当前进程挂起到后台暂停运行,执行一些别的操作,然后再用 fg 来将挂起的进程重新放回前台也

可用 bg 来将挂起的进程放在后台)继续运行。

wait命令停止脚本的运行,直到后台运行的所有作业都结束为止,或者直到指定作业号或进程号为选项的作业结束为止.可

以使用wait 命令来防止在后台作业没完成(这会产生一个孤儿进程)之前退出脚本.


相关内容