歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> 深入了解Linux進程與作業

深入了解Linux進程與作業

日期:2017/3/2 16:34:01   编辑: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

  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

Copyright © Linux教程網 All Rights Reserved