linux 程序被Killed,查看原因

    xiaoxiao2022-07-14  159

    1.查看信息:

    输入以下程序:

    dmesg | egrep -i -B100 'killed process'

    可以输出最近killed的信息。

    2.设定kill优先度:

    (1)完全关掉oom(不建议):

    sysctl vm.overcommit_memory=2 echo “vm.overcommit_memory=2” >> /etc/sysctl.conf

    (2)出现 Out of memory之后重启:

    sysctl vm.panic_on_oom=1 sysctl kernel.panic=X echo “vm.panic_on_oom=1” >> /etc/sysctl.conf echo “kernel.panic=X” >> /etc/sysctl.conf

    (3)优先考虑kill这个进程:

    sudo echo 10>/proc/[PID]/oom_adj

    (4)尽量不去kill这个进程:

    sudo echo -15>/proc/[PID]/oom_adj

    (5)不会kill这个进程:

    sudo echo -17>/proc/[PID]/oom_adj

    oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高。当该值为-17时,系统将不会杀死指定pid的进程,而-16~15则会使得进程的/proc/[pid]/oom_adj值呈指数()形式递增,即它们被杀掉的可能性呈指数递增。针对init(进程号为1)这个进程,无论该值设为多少都不会被杀。

    3.若拒绝访问:

    命令改为:

    bash -c "echo '10' | tee /proc/[PID]/oom_adj" bash -c "echo '-15' | tee /proc/[PID]/oom_adj" bash -c "echo '-17' | tee /proc/[PID]/oom_adj"

     

    最新回复(0)