如何防止进程被杀?
无论如何都要防止一个进程被杀死无论如何? 我知道nice
但我不确定是否给出一项任务,例如长时间运行的内存密集型rake
任务,最高优先级将阻止它被杀掉:
nice -n -20 rake xyz
编辑:原始海报很可能希望它是高优先级,即使服务器资源也很少,以至于其他进程首先被杀死。
为什么会被杀掉?
因为杀死某些东西并不是自动的。 一旦你回答了这个问题,并解释为什么会选择某些东西进行销毁,你就可以找到解决方案。
鉴于你在谈论Rails的rake
命令,我猜这是一个在服务器上运行的进程。 您担心它被杀死表明它被服务器主机杀死,因为它使用了太多资源。 在这种情况下,没有(也不应该)阻止你被杀的过程。
如果您有一项资源昂贵的任务,请购买更多资源。 使用您自己的服务器时间。 或者与主持人达成协议,允许你在他们的角钱上运行它。
您无法阻止root终止进程。 或者就此而言:您无法阻止服务器终止耗尽所有资源的进程。
您可以做的是fork命令,以便在被杀时重新启动它。
使用代码的示例: