如何在轨

问题描述:

运行rake任务在后台这是我的命令如何在轨

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

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

请帮帮我。

我经常使用的方法是:

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

这将让即使您退出shell中运行的任务。那么如果我只想观察跟踪输出直播,我这样做:

tail -f rake.out 

您可以随时检查rake.out。

如果你需要在完成之前杀死它,你可以用ps找到它并杀死pid。

+0

'tail -f rake.out'不会显示rake进程的控制台输出。如何查看控制台输出? – LINGS

+0

@LINGS当我使用上述技术时,我确实获得了耙控制台输出。你的命令行是什么样的? – lurker

+0

所以我执行'nohup bundle exec rake pr:monitor --trace> monitor.out 2>&1&'。 当我'尾-f monitor.out',我得到 '**调用PR:显示器(FIRST_TIME) **调用环境(FIRST_TIME) **执行环境 **执行PR:monitor' – LINGS

为防万一有人发现这4年后,捆绑有一个现在这样做的优雅方式。例如,如果你想在后台运行sidekiq你可以这样做:

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

-d daemonizes在后台运行,但你也将需要使用-L提供一个日志文件,否则打捆将拒绝在后台运行你的命令(deamonize)。 使用捆绑销售商版本1.15.4进行测试