2013-07-26 21 views
2

我有一種情況,我們的服務器正在終止一個我不想被殺死的進程。 我的理解是,這是因爲內核過量使用內存,然後在內存耗盡時被迫終止進程。 我的理解是,我可以影響內核的關於通過調整下面的值在這種情況下,以殺滅處理決定:如何編輯linux上的進程的proc/pid/oom_adj

的/ proc/[PID]/oom_adj

這篇文章解釋了這一切:
http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

不過,我得到一個權限被拒絕的錯誤,當我嘗試這是Ubuntu的用戶:

回聲-15>的/ proc/5641/oom_adj
-bash:的/ proc/5641/oom_adj:權限被拒絕

須藤回聲-15>的/ proc/5641/oom_adj
給出了同樣的錯誤 我的理解是,這是因爲shell不執行「>」命令作爲根。

但是,我熟悉的解決方法是給出「沒有這樣的文件或目錄」錯誤。

須藤的bash -c '回波-15>的/ proc/5641/oom_adj'
-bash:/ PROC/5641/oom_adj ':沒有這樣的文件或目錄

須藤-s' 回波-15>的/ proc/5641/oom_adj '
-bash:的/ proc/5641/oom_adj':沒有這樣的文件或目錄

我在做什麼不正確?

回答

2

試試這個:

sudo bash -c "echo '-15' | tee /proc/5641/oom_adj" 

這將確保該文件以root身份編寫,因爲bash正在以根用戶身份運行tee