如何防止进程被杀?

无论如何都要防止一个进程被杀死无论如何? 我知道nice但我不确定是否给出一项任务,例如长时间运行的内存密集型rake任务,最高优先级将阻止它被杀掉:

 nice -n -20 rake xyz 

编辑:原始海报很可能希望它是高优先级,即使服务器资源也很少,以至于其他进程首先被杀死。

为什么被杀掉?

因为杀死某些东西并不是自动的。 一旦你回答了这个问题,并解释为什么会选择某些东西进行销毁,你就可以找到解决方案。

鉴于你在谈论Rails的rake命令,我猜这是一个在服务器上运行的进程。 您担心它被杀死表明它被服务器主机杀死,因为它使用了太多资源。 在这种情况下,没有(也不应该)阻止你被杀的过程。

如果您有一项资源昂贵的任务,请购买更多资源。 使用您自己的服务器时间。 或者与主持人达成协议,允许你在他们的角钱上运行它。

您无法阻止root终止进程。 或者就此而言:您无法阻止服务器终止耗尽所有资源的进程。

您可以做的是fork命令,以便在被杀时重新启动它。

使用代码的示例: