【问题标题】:Running Ruby script in background for indefinite time无限期在后台运行 Ruby 脚本
【发布时间】:2012-11-21 15:34:04
【问题描述】:

我有一个 Ruby 脚本,它运行/查询数据库并每 30 秒输入/删除信息。我从命令行运行它:

ruby worker.rb

我正在连接服务器。当我关闭终端时,工作人员停止运行。有没有办法确保它继续运行?

【问题讨论】:

标签: ruby linux ubuntu backgroundworker


【解决方案1】:

是的。简单的方法是使用nohup&

nohup ruby worker.rb &

将启动它,将控制权返回给 shell,并让它独立于终端独立运行。另一种选择是使其成为守护进程。此代码位于设置代码之后:

Process.daemon

【讨论】:

  • 它还会创建 nohup.out 文件,您可以在其中记录脚本结果。
【解决方案2】:

为了获得最佳控制,您希望使用 ScreenTmux

您将能够像往常一样启动脚本(无需守护进程)并查看输出。

您可以关闭 SSH 会话,脚本将继续运行。

下次登录时,您将获得相同的环境,就像您从未退出过一样。

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2017-01-30
    相关资源
    最近更新 更多