做爲一個新手,部署Python網站的時候總會出各類各樣的問題,這個時候我就很想知道是哪一個程序沒有運行。這幾天讀了鳥哥私房菜的進程管理這一章,還沒讀完,先作下筆記。shell
一個程序被加載到內存中運行,在內存中的數據就被稱爲進程。在Linux下,全部的命令在執行時都會被系統定義爲一個進程
,這條命令會被分配一個ID,稱爲PID
,執行這條命令的用戶會被分配一個UID
,系統根據UID來判別執行命令的權限。windows
進程就是正在運行中的程序。bash
子進程是父進程衍生出來的進程,用fork and exec
的方式產生,PPID
值與父進程PID
值相同能夠用ps -l
來查看當前用戶的全部進程。服務器
Linux下的工做管理很像windows的任務管理器。工做管理是將進程控制在前臺或後臺運行,後臺運行的程序必須是與用戶沒有交互,換句話說不用等待輸入的。出現提示符讓你操做的環境稱爲前臺(foreground)
,反之稱爲後臺(background)
網站
能夠在執行的命令後加上&
把它丟到後臺去執行,如code
tar -zpcf /tmp/etc.tar.gz /etc &
終端裏會顯示出PID,若是有出錯信息,會提示,能夠看到命令提示符。進程
CTRL+Z能夠將進程暫停放到後臺,進程是沒有中止的!CTRL+C是中止當前的進程。被CTRL+Z放到後臺暫停的進程,能夠經過fg
和bg
調整爲運行狀態。先查看一下當先後臺工做狀態:
jobs [-lrs]
內存
而後用fg %jobnumber
能夠調到前臺('%'無關緊要,jobnumber爲任務編號,不是PID)或是用bg %jobnumber
來在後臺運行。部署
kill -signal %jobnumber
class
脫機管理是指當你用遠程終端登錄服務器時,若是直接以&方式將任務放到後臺掉線以後進程是不會繼續執行的,能夠用nohup
來解決,如:
nohup ./sleep500.sh &
ps命令能夠靜態查看系統進程。
ps -l
查看本身bash相關進程ps aux
查看系統全部進程,配合grep等管道命令用