标签: ruby linux ubuntu backgroundworker
我有一个运行/查询数据库的Ruby脚本,每30秒输入/删除一次信息。我使用以下命令从命令行运行它:
ruby worker.rb
我正在进入服务器。当我关闭终端时,工人停止运行。有没有办法确保它继续运行?
答案 0 :(得分:5)
是。简单的方法是使用nohup和&:
nohup
&
nohup ruby worker.rb &
将启动它,将控制权返回给shell,让它独立于终端运行。另一个选择是使它成为一个守护进程。此代码位于设置代码之后:
Process.daemon
答案 1 :(得分:2)
为了获得最佳控制权,您可以使用Screen或Tmux
您将能够像往常一样启动脚本(没有守护进程)并查看输出。
您可以关闭SSH会话,脚本将继续运行。
下次登录时,您将获得相同的环境,就像您从未注销过一样。