日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux中通過kill和killall管理進程

在 Linux 中,每個程序和守護程序daemon都是一個“進程process”。 大多數(shù)進程代表一個正在運行的程序。而另外一些程序可以派生出其他進程,比如說它會偵聽某些事件的發(fā)生,然后對其做出響應。并且每個進程都需要一定的內(nèi)存和處理能力。你運行的進程越多,所需的內(nèi)存和 CPU 使用周期就越多。在老式電腦(例如我使用了 7 年的筆記本電腦)或輕量級計算機(例如樹莓派)上,如果你關注過后臺運行的進程,就能充分利用你的系統(tǒng)。

創(chuàng)新互聯(lián)公司是專業(yè)的商州網(wǎng)站建設公司,商州接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行商州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

你可以使用 ps 命令來查看正在運行的進程。你通常會使用 ps 命令的參數(shù)來顯示出更多的輸出信息。我喜歡使用 -e 參數(shù)來查看每個正在運行的進程,以及 -f 參數(shù)來獲得每個進程的全部細節(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 | head
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 13:51 ?        00:00:50 /usr/lib/systemd/systemd --switched-root --system --deserialize 36
root           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]

最后的例子顯示最多的細節(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 等一系列進程。

使用 kill 命令來管理進程

系統(tǒng)會處理大多數(shù)后臺進程,所以你不需要操心這些進程。你只需要關注那些你所運行的應用創(chuàng)建的進程。雖然許多應用一次只運行一個進程(如音樂播放器、終端模擬器或游戲等),但其他應用則可能創(chuàng)建后臺進程。其中一些應用可能當你退出后還在后臺運行,以便下次你使用的時候能快速啟動。

當我運行 Chromium(作為谷歌 Chrome 瀏覽器所基于的開源項目)時,進程管理便成了問題。 Chromium 在我的筆記本電腦上運行非常吃力,并產(chǎn)生了許多額外的進程?,F(xiàn)在我僅打開五個選項卡,就能看到這些 Chromium 進程:

$ ps -ef | fgrep chromium
jhall      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 -l
21

但是在我退出 Chromium 之后,這些進程仍舊運行。如何關閉它們并回收這些進程占用的內(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}'
66221
66230
66239
66257
66262
66283
66284
66285
66324
66337
66360
66370
66386
66402
66503
66539
66595
66734
66848
66861
69702

$ ps -ef | fgrep /usr/lib64/chromium-browser/chromium-browser | awk '{print $2}' > /tmp/pids
$ kill $(cat /tmp/pids)

最后兩行是關鍵。第一個命令行為 Chromium 瀏覽器生成一個進程 ID 列表。第二個命令行針對該進程 ID 列表運行 kill 命令。

介紹 killall 命令

一次終止多個進程有個更簡單方法,使用 killall 命令。你或許可以根據(jù)名稱猜測出,killall 會終止所有與該名字匹配的進程。這意味著我們可以使用此命令來停止所有流氓 Chromium 進程。這很簡單:

$ killall /usr/lib64/chromium-browser/chromium-browser

但是要小心使用 killall。該命令能夠終止與你所給出名稱相匹配的所有進程。這就是為什么我喜歡先使用 ps -ef 命令來檢查我正在運行的進程,然后針對要停止的命令的準確路徑運行 killall。

你也可以使用 -i 或 –interactive 參數(shù),來讓 killkill 在停止每個進程之前提示你。

killall 還支持使用 -o 或 –older-than 參數(shù)來查找比特定時間更早的進程。例如,如果你發(fā)現(xiàn)了一組已經(jīng)運行了好幾天的惡意進程,這將會很有幫助。又或是,你可以查找比特定時間更晚的進程,例如你最近啟動的失控進程。使用 -y 或 –young-than 參數(shù)來查找這些進程。

其他管理進程的方式

進程管理是系統(tǒng)維護重要的一部分。在我作為 Unix 和 Linux 系統(tǒng)管理員的早期職業(yè)生涯中,殺死非法作業(yè)的能力是保持系統(tǒng)正常運行的關鍵。在如今,你可能不需要親手在 Linux 上的終止流氓進程,但是知道 kill 和 killall 能夠在最終出現(xiàn)問題時為你提供幫助。

你也能尋找其他方式來管理進程。在我這個案例中,我并不需要在我退出瀏覽器后,使用 kill 或 killall 來終止后臺 Chromium 進程。在 Chromium 中有個簡單設置就可以進行控制:

不過,始終關注系統(tǒng)上正在運行哪些進程,并且在需要的時候進行干預是一個明智之舉。


名稱欄目:Linux中通過kill和killall管理進程
本文URL:http://www.5511xx.com/article/coiopse.html