停止杀戮命令

时间:2016-08-08 16:11:02

标签: ruby linux process

我有红宝石申请 我的申请包括一些预定的工作,每2小时或3小时或更长时间连续工作 我经常对应用程序进行更改,因此我必须终止应用程序并重新运行它 我一般遵循这3个步骤

ps -ef|grep rackup
kill -9 PID
rake run

因此,如果它们正在执行中,它的预定工作就会生效...... 是否有任何方法可以在作业完成之前停止kill -9命令(可能是一些锁或脚本)

2 个答案:

答案 0 :(得分:1)

您需要拯救SystemExit例外,或使用trapat_exit信号处理程序。 More info here

答案 1 :(得分:1)

无法捕获,阻止或忽略SIGKILL(来自原始POSIX.1-1990标准,定义为整数值9)。

您可能希望发送SIGKILL(整数值SIGTERM),而不是发送15,这样您就可以trap it in your application

如果没有看到应用程序的实际代码,很难确切告诉您应该如何操作,但一个好的方法是在信号处理程序中设置一个变量,并检查其状态在您的应用程序中可以正常终止的某些点。