如何编辑 linux 上进程的 proc/pid/oom_adj

Ale*_*yan 5 linux process out-of-memory linux-kernel

我遇到一种情况,我们的服务器正在杀死一个我不想杀死的进程。\n我的理解是,发生这种情况是因为内核过度使用内存,然后在实际耗尽内存时被迫杀死进程\n我的理解是,我可以通过调整以下值来影响内核\xe2\x80\x99在这种情况下杀死哪个进程的决定:

\n\n

/proc/[pid]/oom_adj

\n\n

本文解释了所有这些:
\n http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

\n\n

但是,当我以 ubuntu 用户身份尝试此操作时,出现权限被拒绝错误:

\n\n

echo -15 > /proc/5641/oom_adj
\n-bash: /proc/5641/oom_adj: 权限被拒绝

\n\n

sudo echo -15 > /proc/5641/oom_adj
\ngives 相同的错误\n我的理解是,这是因为 shell 没有以 root 身份执行 \xe2\x80\x9c>\xe2\x80\x9d 命令。

\n\n

但是,我熟悉的解决方法是给出 \xe2\x80\x9cNo such file or directory\xe2\x80\x9d 错误。

\n\n

sudo bash -c \xe2\x80\x98echo -15 > /proc/5641/oom_adj\xe2\x80\x99
\n-bash: /proc/5641/oom_adj\xe2\x80\x99: 没有这样的文件或目录

\n\n

sudo -s \xe2\x80\x98echo -15 > /proc/5641/oom_adj\xe2\x80\x99
\n-bash: /proc/5641/oom_adj\xe2\x80\x99: 没有这样的文件或目录

\n\n

我做错了什么?

\n

she*_*pya 3

您正在运行echoroot但实际上您的 shell 正在尝试在 proc 中写入,请在此处查看更多说明: How do I use sudo toiredirect output to a location I don't have access to access?