本篇內(nèi)容主要講解“Linux上使用什么命令來管理進程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Linux上使用什么命令來管理進程”吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了南宮免費建站歡迎大家使用!
在 Linux 中,每個程序和守護程序都是一個“進程”。 大多數(shù)進程代表一個正在運行的程序。而另外一些程序可以派生出其他進程,比如說它會偵聽某些事件的發(fā)生,然后對其做出響應(yīng)。并且每個進程都需要一定的內(nèi)存和處理能力。你運行的進程越多,所需的內(nèi)存和 CPU 使用周期就越多。在老式電腦(例如我使用了 7 年的筆記本電腦)或輕量級計算機(例如樹莓派)上,如果你關(guān)注過后臺運行的進程,就能充分利用你的系統(tǒng)。
你可以使用 ps
命令來查看正在運行的進程。你通常會使用 ps
命令的參數(shù)來顯示出更多的輸出信息。我喜歡使用 -e
參數(shù)來查看每個正在運行的進程,以及 -f
參數(shù)來獲得每個進程的全部細(xì)節(jié)。以下是一些例子:
$ ps PID TTY TIME CMD 88000 pts/0 00:00:00 bash 88052 pts/0 00:00:00 ps 88053 pts/0 00:00:00 head
$ ps -e | head PID TTY TIME CMD 1 ? 00:00:50 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 rcu_gp 4 ? 00:00:00 rcu_par_gp 6 ? 00:00:02 kworker/0:0H-events_highpri 9 ? 00:00:00 mm_percpu_wq 10 ? 00:00:01 ksoftirqd/0 11 ? 00:00:12 rcu_sched 12 ? 00:00:00 migration/0
$ ps -ef | headUID PID PPID C STIME TTY TIME CMDroot 1 0 0 13:51 ? 00:00:50 /usr/lib/systemd/systemd --switched-root --system --deserialize 36root 2 0 0 13:51 ? 00:00:00 [kthreadd]root 3 2 0 13:51 ? 00:00:00 [rcu_gp]root 4 2 0 13:51 ? 00:00:00 [rcu_par_gp]root 6 2 0 13:51 ? 00:00:02 [kworker/0:0H-kblockd]root 9 2 0 13:51 ? 00:00:00 [mm_percpu_wq]root 10 2 0 13:51 ? 00:00:01 [ksoftirqd/0]root 11 2 0 13:51 ? 00:00:12 [rcu_sched]root 12 2 0 13:51 ? 00:00:00 [migration/0]
最后的例子顯示最多的細(xì)節(jié)。在每一行,UID
(用戶 ID)顯示了該進程的所有者。PID
(進程 ID)代表每個進程的數(shù)字 ID,而 PPID
(父進程 ID)表示其父進程的數(shù)字 ID。在任何 Unix 系統(tǒng)中,進程是從 1 開始編號,是內(nèi)核啟動后運行的第一個進程。在這里,systemd
是第一個進程,它催生了 kthreadd
,而 kthreadd
還創(chuàng)建了其他進程,包括 rcu_gp
、rcu_par_gp
等一系列進程。
系統(tǒng)會處理大多數(shù)后臺進程,所以你不需要操心這些進程。你只需要關(guān)注那些你所運行的應(yīng)用創(chuàng)建的進程。雖然許多應(yīng)用一次只運行一個進程(如音樂播放器、終端模擬器或游戲等),但其他應(yīng)用則可能創(chuàng)建后臺進程。其中一些應(yīng)用可能當(dāng)你退出后還在后臺運行,以便下次你使用的時候能快速啟動。
當(dāng)我運行 Chromium(作為谷歌 Chrome 瀏覽器所基于的開源項目)時,進程管理便成了問題。 Chromium 在我的筆記本電腦上運行非常吃力,并產(chǎn)生了許多額外的進程?,F(xiàn)在我僅打開五個選項卡,就能看到這些 Chromium 進程:
$ ps -ef | fgrep chromiumjhall 66221 [...] /usr/lib64/chromium-browser/chromium-browser [...]jhall 66230 [...] /usr/lib64/chromium-browser/chromium-browser [...][...]jhall 66861 [...] /usr/lib64/chromium-browser/chromium-browser [...]jhall 67329 65132 0 15:45 pts/0 00:00:00 grep -F chromium
我已經(jīng)省略一些行,其中有 20 個 Chromium 進程和一個正在搜索 “chromium" 字符的 grep
進程。
$ ps -ef | fgrep chromium | wc -l21
但是在我退出 Chromium 之后,這些進程仍舊運行。如何關(guān)閉它們并回收這些進程占用的內(nèi)存和 CPU 呢?
kill
命令能讓你終止一個進程。在最簡單的情況下,你告訴 kill
命令終止你想終止的進程的 PID。例如,要終止這些進程,我需要對 20 個 Chromium 進程 ID 都執(zhí)行 kill
命令。一種方法是使用命令行獲取 Chromium 的 PID,而另一種方法針對該列表運行 kill
:
$ ps -ef | fgrep /usr/lib64/chromium-browser/chromium-browser | awk '{print $2}'662216623066239662576626266283662846628566324663376636066370663866640266503665396659566734668486686169702 $ ps -ef | fgrep /usr/lib64/chromium-browser/chromium-browser | awk '{print $2}' > /tmp/pids$ kill $(cat /tmp/pids)
最后兩行是關(guān)鍵。第一個命令行為 Chromium 瀏覽器生成一個進程 ID 列表。第二個命令行針對該進程 ID 列表運行 kill
命令。
一次終止多個進程有個更簡單方法,使用 killall
命令。你或許可以根據(jù)名稱猜測出,killall
會終止所有與該名字匹配的進程。這意味著我們可以使用此命令來停止所有流氓 Chromium 進程。這很簡單:
$ killall /usr/lib64/chromium-browser/chromium-browser
但是要小心使用 killall
。該命令能夠終止與你所給出名稱相匹配的所有進程。這就是為什么我喜歡先使用 ps -ef
命令來檢查我正在運行的進程,然后針對要停止的命令的準(zhǔn)確路徑運行 killall
。
你也可以使用 -i
或 --interactive
參數(shù),來讓 killkill
在停止每個進程之前提示你。
killall
還支持使用 -o
或 --older-than
參數(shù)來查找比特定時間更早的進程。例如,如果你發(fā)現(xiàn)了一組已經(jīng)運行了好幾天的惡意進程,這將會很有幫助。又或是,你可以查找比特定時間更晚的進程,例如你最近啟動的失控進程。使用 -y
或 --young-than
參數(shù)來查找這些進程。
到此,相信大家對“Linux上使用什么命令來管理進程”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文標(biāo)題:Linux上使用什么命令來管理進程
標(biāo)題來源:http://jinyejixie.com/article4/pgiioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、小程序開發(fā)、搜索引擎優(yōu)化、面包屑導(dǎo)航、網(wǎng)站改版、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)