Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个运行/查询数据库并每 30 秒输入/删除信息的 Ruby 脚本。我使用以下命令从命令行运行它:
ruby worker.rb
我正在进入服务器。当我关闭终端时,工作人员停止运行。有没有办法确保它继续运行?
是的。简单的方法是使用nohupand &:
nohup
&
nohup ruby worker.rb &
将启动它,将控制权返回给 shell,并让它独立于终端运行。另一种选择是使其成为守护进程。此代码在设置代码之后:
Process.daemon
为了获得最佳控制,您想使用Screen或Tmux
您将能够像往常一样启动脚本(无需守护进程)并查看输出。
您可以关闭 SSH 会话,脚本将继续运行。
下次登录时,您将获得相同的环境,就像您从未注销一样。