9

这是我的命令

bundle exec rake resque:work QUEUE="*" --trace

我想在我的服务器上将此命令作为后台进程运行。

请帮我。

4

2 回答 2

31

我经常使用的一种方法是:

nohup bundle exec rake resque:work QUEUE="*" --trace > rake.out 2>&1 &

即使您退出 shell,这也将保持任务运行。然后,如果我只想实时观察跟踪输出,我会:

tail -f rake.out

您可以随时检查 rake.out。

如果需要在完成前将其杀死,可以使用pspid 找到并杀死它。

于 2013-05-29T14:34:33.527 回答
8

以防有人在 4 年后发现这一点,bundle 现在有一种优雅的方式来做到这一点。例如,如果你想在后台运行 sidekiq,你可以这样做:

bundle exec sidekiq -e production -d -L ./log/sidekiq.log 

-d守护程序在后台运行,但您还需要使用提供日志文件,否则捆绑程序将拒绝在后台运行您的-L命令(deamonize)。使用捆绑器版本 1.15.4 测试

2019 年 10 月更新。虽然该命令通常仍然有效,但上面的特定命令将不再适用于 sidekiq 6.0+,如果您使用 Linux,则需要使用 Upstart 或 Systemd:https ://github.com/mperham/sidekiq /wiki/Deployment#running-your-own-process

于 2017-10-14T13:53:17.387 回答