linux進程管理

做爲一個新手,部署Python網站的時候總會出各類各樣的問題,這個時候我就很想知道是哪一個程序沒有運行。這幾天讀了鳥哥私房菜的進程管理這一章,還沒讀完,先作下筆記。shell

什麼是進程?

一個程序被加載到內存中運行,在內存中的數據就被稱爲進程。在Linux下,全部的命令在執行時都會被系統定義爲一個進程,這條命令會被分配一個ID,稱爲PID,執行這條命令的用戶會被分配一個UID,系統根據UID來判別執行命令的權限。windows

進程就是正在運行中的程序。bash

子進程是父進程衍生出來的進程,用fork and exec的方式產生,PPID值與父進程PID值相同能夠用ps -l來查看當前用戶的全部進程。服務器

工做管理(job control)

Linux下的工做管理很像windows的任務管理器。工做管理是將進程控制在前臺或後臺運行,後臺運行的程序必須是與用戶沒有交互,換句話說不用等待輸入的。出現提示符讓你操做的環境稱爲前臺(foreground),反之稱爲後臺(background)網站

能夠在執行的命令後加上&把它丟到後臺去執行,如code

tar -zpcf /tmp/etc.tar.gz /etc &

終端裏會顯示出PID,若是有出錯信息,會提示,能夠看到命令提示符。進程

CTRL+Z 與 CTRL+C

CTRL+Z能夠將進程暫停放到後臺,進程是沒有中止的!CTRL+C是中止當前的進程。被CTRL+Z放到後臺暫停的進程,能夠經過fgbg調整爲運行狀態。先查看一下當先後臺工做狀態:
jobs [-lrs]內存

  • -l:列出命令及PID
  • -r:列出運行的進程(run)
  • -s:列出後臺暫停的進程(stop)

而後用fg %jobnumber能夠調到前臺('%'無關緊要,jobnumber爲任務編號,不是PID)或是用bg %jobnumber來在後臺運行。部署

kill

kill -signal %jobnumberclass

  • signal:
  • -1:從新讀取配置文件(相似reload)(左邊是原文,不懂是幹嗎的,若是明白煩請指點><)
  • -2:與鍵盤ctrl+c做用相同
  • -9:強制刪除一個工做
  • -15:以正常方式結束一個工做

脫機管理

脫機管理是指當你用遠程終端登錄服務器時,若是直接以&方式將任務放到後臺掉線以後進程是不會繼續執行的,能夠用nohup來解決,如:

nohup ./sleep500.sh &

查看進程

ps命令能夠靜態查看系統進程。

  • ps -l查看本身bash相關進程
  • ps aux查看系統全部進程,配合grep等管道命令用
相關文章
相關標籤/搜索