成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Linux 上使用 kill 和 killall 命令來管理進程

系統 Linux
了解如何使用 ps、kill 和 killall 命令來終止進程并回收系統資源。

[[388614]]

了解如何使用 ps、kill 和 killall 命令來終止進程并回收系統資源。

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

你可以使用 ps 命令來查看正在運行的進程。你通常會使用 ps 命令的參數來顯示出更多的輸出信息。我喜歡使用 -e 參數來查看每個正在運行的進程,以及 -f 參數來獲得每個進程的全部細節。以下是一些例子:

  1. $ ps
  2. PID TTY TIME CMD
  3. 88000 pts/0 00:00:00 bash
  4. 88052 pts/0 00:00:00 ps
  5. 88053 pts/0 00:00:00 head
  1. $ ps -e | head
  2. PID TTY TIME CMD
  3. 1 ? 00:00:50 systemd
  4. 2 ? 00:00:00 kthreadd
  5. 3 ? 00:00:00 rcu_gp
  6. 4 ? 00:00:00 rcu_par_gp
  7. 6 ? 00:00:02 kworker/0:0H-events_highpri
  8. 9 ? 00:00:00 mm_percpu_wq
  9. 10 ? 00:00:01 ksoftirqd/0
  10. 11 ? 00:00:12 rcu_sched
  11. 12 ? 00:00:00 migration/0
  1. $ ps -ef | head
  2. UID PID PPID C STIME TTY TIME CMD
  3. root 1 0 0 13:51 ? 00:00:50 /usr/lib/systemd/systemd --switched-root --system --deserialize 36
  4. root 2 0 0 13:51 ? 00:00:00 [kthreadd]
  5. root 3 2 0 13:51 ? 00:00:00 [rcu_gp]
  6. root 4 2 0 13:51 ? 00:00:00 [rcu_par_gp]
  7. root 6 2 0 13:51 ? 00:00:02 [kworker/0:0H-kblockd]
  8. root 9 2 0 13:51 ? 00:00:00 [mm_percpu_wq]
  9. root 10 2 0 13:51 ? 00:00:01 [ksoftirqd/0]
  10. root 11 2 0 13:51 ? 00:00:12 [rcu_sched]
  11. root 12 2 0 13:51 ? 00:00:00 [migration/0]

最后的例子顯示最多的細節。在每一行,UID(用戶 ID)顯示了該進程的所有者。PID(進程 ID)代表每個進程的數字 ID,而 PPID(父進程 ID)表示其父進程的數字 ID。在任何 Unix 系統中,進程是從 1 開始編號,是內核啟動后運行的第一個進程。在這里,systemd 是第一個進程,它催生了 kthreadd,而 kthreadd 還創建了其他進程,包括 rcu_gp、rcu_par_gp 等一系列進程。

使用 kill 命令來管理進程

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

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

  1. $ ps -ef | fgrep chromium
  2. jhall 66221 [...] /usr/lib64/chromium-browser/chromium-browser [...]
  3. jhall 66230 [...] /usr/lib64/chromium-browser/chromium-browser [...]
  4. [...]
  5. jhall 66861 [...] /usr/lib64/chromium-browser/chromium-browser [...]
  6. jhall 67329 65132 0 15:45 pts/0 00:00:00 grep -F chromium

我已經省略一些行,其中有 20 個 Chromium 進程和一個正在搜索 “chromium" 字符的 grep 進程。

  1. $ ps -ef | fgrep chromium | wc -l
  2. 21

但是在我退出 Chromium 之后,這些進程仍舊運行。如何關閉它們并回收這些進程占用的內存和 CPU 呢?

kill 命令能讓你終止一個進程。在最簡單的情況下,你告訴 kill 命令終止你想終止的進程的 PID。例如,要終止這些進程,我需要對 20 個 Chromium 進程 ID 都執行 kill 命令。一種方法是使用命令行獲取 Chromium 的 PID,而另一種方法針對該列表運行 kill

  1. $ ps -ef | fgrep /usr/lib64/chromium-browser/chromium-browser | awk '{print $2}'
  2. 66221
  3. 66230
  4. 66239
  5. 66257
  6. 66262
  7. 66283
  8. 66284
  9. 66285
  10. 66324
  11. 66337
  12. 66360
  13. 66370
  14. 66386
  15. 66402
  16. 66503
  17. 66539
  18. 66595
  19. 66734
  20. 66848
  21. 66861
  22. 69702
  23.  
  24. $ ps -ef | fgrep /usr/lib64/chromium-browser/chromium-browser | awk '{print $2}' > /tmp/pids
  25. $ kill $(cat /tmp/pids)

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

介紹 killall 命令

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

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

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

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

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

其他管理進程的方式

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

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

Chromium background processes setting

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

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-10-11 10:33:02

Linux jps命令Java

2019-04-19 14:00:55

Linuxkillall命令

2010-06-07 12:51:51

Linux 查看進程

2020-04-10 09:56:12

at命令Linux安排任務

2009-10-27 08:57:50

linux殺死進程

2021-12-12 09:19:16

find命令Linux

2019-10-15 13:29:24

LinuxLinux命令

2021-12-09 09:27:22

MacOSHomebrew包管理器

2018-02-26 08:14:20

LinuxDocker容器

2009-05-26 12:14:59

Linuxkill終止命令

2010-06-10 17:34:22

Linux 查看進程

2021-09-17 10:51:01

Linuxlspci命令

2021-09-10 10:35:25

Linuxstat命令文件系統

2010-06-04 14:49:15

Linux 查看進程

2023-10-15 14:53:22

Arch LinuxYay

2010-02-25 10:28:43

Linux進程管理

2009-03-05 09:43:32

Linux系統進程管理命令

2018-11-06 09:24:55

LinuxLutries命令

2009-10-20 09:19:11

Linux kill命

2013-12-03 09:12:37

Linux命令kill命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久热国产精品视频 | 天天干天天插 | 人人干人人干人人干 | 在线欧美小视频 | 日韩在线不卡 | 欧美精品一区二区三区在线 | 精品婷婷| 国产视频久久久 | 日韩成人 | 第四色狠狠 | 精品综合久久久 | 高清一区二区 | 中文字幕一页二页 | 国产精品国产三级国产aⅴ中文 | 精品国产一区二区三区久久久久久 | 精品一二区 | 欧美亚洲在线 | 日韩1区| av午夜电影| 色妞av| 精品国产精品三级精品av网址 | 成人免费网站www网站高清 | 国产精品毛片av | 亚洲精品一区二区另类图片 | 欧美不卡在线 | 精品在线免费看 | 欧美理伦片在线播放 | 91视频在线观看 | 亚洲欧美日韩国产综合 | 国产在线一区二区三区 | 国产成人叼嘿视频在线观看 | 欧美日韩高清一区二区三区 | 午夜欧美| 国产精品久久久久久久久久 | 亚洲精选一区二区 | 日韩中文一区二区三区 | 日本中文字幕视频 | 毛片大全| 视频一区二区国产 | 国产精品久久久久久久久久不蜜臀 | 国产清纯白嫩初高生视频在线观看 |