共計 2638 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要介紹“linux 出現 killed 的原因有哪些”,在日常操作中,相信很多人在 linux 出現 killed 的原因有哪些問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux 出現 killed 的原因有哪些”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
在 linux 中,出現 killed 的原因是系統資源不足或內存不足;當系統資源不足時,Linux 內核也可以決定終止一個或多個進程,內存不足時會在系統的物理內存耗盡時觸發 killed,可以利用“dmesg | tail -7”命令來查看 killed 日志。
本教程操作環境:linux7.3 系統、Dell G3 電腦。
linux 出現 killed 的原因是什么
觸發 Killed 常見原因
當系統資源不足時,Linux 內核也可以決定終止一個或多個進程。一個非常常見的例子是內存不足 (OOM) killer,會在系統的物理內存耗盡時觸發。
當內存不足時,內核會將相關信息記錄到內核日志緩沖區中,該緩沖區可通過 /dev/kmsg 獲得。
有幾個工具 / 腳本 / 命令 可以更輕松地從該虛擬設備讀取數據,其中最常見的是 dmesg 和 journalctl。
查看 Killed 日志
使用 sudo dmesg | tail - 7 命令(任意目錄下,不需要進入 log 目錄,這應該是最簡單的一種)
可以看到:
oom-kill 之后,就是解釋那個被 killed 的程序的 pid 和 uid
Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB,內存不夠
total_vm:總共使用的虛擬內存 Virtual memory use (in 4 kB pages)
8117956/1024(得到 MB)/1024(得到 GB)=7.741GB
rss:常駐內存使用 Resident memory use (in 4 kB pages)
5649844/1024/1024=5.388GB
擴展知識
使用下面的這幾行命令
journalctl --list-boots |
awk ‘{ print $1 }’ |
xargs -I{} journalctl --utc --no-pager -b {} -kqg ‘killed process’ -o verbose --output-fields=MESSAGE
就可以直接得到,最關鍵的信息
hs@hs:~$ journalctl --list-boots | \
awk { print $1 } | \
xargs -I{} journalctl --utc --no-pager -b {} -kqg killed process -o verbose --output-fields=MESSAGE
Mon 2022-02-14 08:48:43.684987 UTC [s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4573;b=7bc379f894944dcd81ae32ff54afa009;m=456b0ad36d2;t=5d7f67bdee47b;x=5bfe01f8e2ca9b2c]
MESSAGE=Out of memory: Killed process 1125888 (python3) total-vm:8530488kB, anon-rss:5653404kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12552kB oom_score_adj:0
Mon 2022-02-14 09:29:43.854158 UTC [s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4785;b=7bc379f894944dcd81ae32ff54afa009;m=45743506aa5;t=5d7f70e82184e;x=9b55cfb2e7c081e7]
MESSAGE=Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12544kB oom_score_adj:0
網上更常見的似乎是:
journalctl -xb | egrep -i killed process’hs@hs:~$ journalctl -xb | egrep -i killed process
Feb 14 08:48:43 hs kernel: Out of memory: Killed process 1125888 (python3) total-vm:8530488kB, anon-rss:5653404kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12552kB oom_score_adj:0
Feb 14 09:29:43 hs kernel: Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12544kB oom_score_adj:0
Feb 15 03:42:08 hs sudo[1151639]: hs : TTY=pts/0 ; PWD=/home/hs ; USER=root ; COMMAND=/usr/bin/egrep -i -r killed process /var/log
以及
sudo dmesg | egrep -i -B100 killed process
# 但是這個會輸出非常多的信息。。。
其中 -B100,表示 killed process’之前的 100 行內容
到此,關于“linux 出現 killed 的原因有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!