我正在使用resque gem,并且我通过以下命令运行作业:
rake resque:work QUEUE='*'
但问题是:当我与远程服务器的SSH连接断开连接,或者我关闭正在运行进程rake resque:work QUEUE='*'
的SSH会话窗口时,它会停止运行该作业。
我希望找到一种独立运行的方式:无需通过SSH保持连接。有没有办法,或者我应该按照这个程序来完成我的要求吗?
答案 0 :(得分:3)
在后台运行任务的另一种方法:$_SERVER[REQUEST_URI]
。它可以根据需要创建任意数量的shell会话,并且可以从初始会话中分离出来。
运行:
screen
(您将参加新的shell会话)
screen
Ctrl + A,Ctrl + D. (这里您将返回初始shell会话,而您启动脚本的会话将继续运行)
您可以按/path/to/your/script > /path/to/log_file
观看进度,注销并重新登录。要返回分离的会话,请运行tail -f /path/to/log_file
。
如果您没有screen -r
安装了运行screen
。不确定Ubuntu,也许它会yum install screen
。运行apt-get install screen
了解更多详情。
答案 1 :(得分:1)