一些背景故事:
昨晚,当delayed_job工作人员正在处理图像处理作业时,我的服务器磁盘空间不足。
当我尝试阻止工作人员时,我得到的答复是“已终止”。
RAILS_ENV=production script/delayed_job stop
Terminated
然后我运行以下命令来查看工作人员是否被终止。
ps -ef | grep delayed_job
servername 4474 4274 0 02:37 pts/1 00:00:00 grep --color=auto delayed_job
现在我尝试启动新的工人。
RAILS_ENV=production script/delayed_job -n2 start
ERROR: there is already one or more instance(s) of the program running
ERROR: there is already one or more instance(s) of the program running
这是我收到的错误,即使我似乎已经停止了所有活动的工作人员,我也无法启动任何新的工作人员。
这让我很困惑,所以我跑了
RAILS_ENV=production script/delayed_job status
delayed_job: running [pid 0]
delayed_job: running [pid 0]
这似乎是错误的 [pid 0],似乎我的工作人员已被损坏,我希望找出解决此问题的方法。谢谢!
我在 Linux Ubuntu LTS 10.4 上运行。
编辑:所以我删除了在 tmp/pids 中找到的 2 个工作文件,这些文件允许我启动和停止工作人员。然而,工作人员不会运行任何东西,因为我相信我需要在 tmp 文件夹中生成 PID 文件。