Linux學習筆記-進程的啓動/終止/優先級

Linux的進程啟動的方式不外乎有兩種方式:調度啟動和手動啟動,調度啟動就是我們經常使用的任務計劃啦,而手動啟動則是由用戶輸入命令,然後Linux執行的一個過程,分為前臺啟動和後臺啟動。


前臺啟動

手動啟動一個進程,比如輸入一個ls、pwd等命令。它的特點是會一直佔據著終端的窗口,直至完成。一般適合運行時間比較短,需要與用戶進行交互的程序。

例如,前臺啟動,會佔據終端窗口,直至命令運行完成

Linux學習筆記-進程的啟動/終止/優先級

在終端窗口運行直至命令結束,終端可以看到結果

後臺啟動

與前臺啟動相對應,不管進程是否完成,都會立即返回到shell提示符下,在窗口頁面等待他完成。好處是,你可以在它後臺運行的時候,繼續運行其他命令。如果一個進程比較耗時,也不需要用戶的交互,可以考慮使用後臺啟動。要以後臺的方式啟動一個進程,只要在運行的命令後面添加&即可,例如:

Linux學習筆記-進程的啟動/終止/優先級

終端只會告知進程id,可以通過ip查看進程的運行結果

使用jobs命令,可以看到系統當前正在運行的所有後臺進程:

Linux學習筆記-進程的啟動/終止/優先級

需要特別注意的是,如果用戶退出終端,該用戶執行的所有程序全部會結束,包括正在執行的後臺程序。

可以使用nohup

命令,保證命令運行的後臺進程不會因此結束:

Linux學習筆記-進程的啟動/終止/優先級

可以使用fg %n關閉nohup命令

終止進程

前臺進行-直接Ctrl+C就可以了

如果是後臺進行,需要使用kill來終止進行,需要使用ps命令去獲取進程id,然後用kill命令殺掉進程。常用選項 -s signal顧名思義,信號名或者信號代碼,查看所有的信號代碼

Linux學習筆記-進程的啟動/終止/優先級

代碼很多,通常都是9或者15,這兩個表示終止進程運行

比如要終止我們後臺的進程,可以如下:

Linux學習筆記-進程的啟動/終止/優先級

-9表示發送殺死進程的信號

如果使用這個命令都無法終止,那麼可能這些進程已經處於僵死狀態,需要通過重啟計算機解決

killall

如果我們需要殺死一個程序運行的所有進程,使用kill命令就比較麻煩了,因為一個程序通常會包含很多的進程,因此,我們可以使用killall命令來殺死程序的所有進程

命令格式:killall 進程名

Linux學習筆記-進程的啟動/終止/優先級

殺死所有ping命令的進程

Linux學習筆記-進程的啟動/終止/優先級

已經成功殺掉

這是針對進程來進行操作,如果一個文件被很多人佔用,我們希望全部殺掉,方便我們對這個文件進行操作和處理,可以使用fuser命令,命令格式如下

fuser -k filename

Linux學習筆記-進程的啟動/終止/優先級

-m能夠查看當前這個文件相關的進程等,然後使用-k殺掉

優先級

在Linux系統中,每個進程在執行時都會有一個優先級,等級越高,進程獲取CPU的時間越多,處理就會更快。進程的優先等級範圍是

-20-19,其中-20最高,19最低,默認級別為0,使用nice和renice命令可以更改優先級

Linux學習筆記-進程的啟動/終止/優先級

以上就是關於Linux進程管理的一些比較常用的操作,感謝閱讀!


分享到:


相關文章: