【问题标题】:ruby daemon script stop when logout ssh注销 ssh 时 ruby​​ 守护程序脚本停止
【发布时间】:2013-10-30 23:12:14
【问题描述】:

我正在开发一个打开端口的 ruby​​ 脚本,我正在使用守护进程 gem,它运行良好,但是当我从 ssh 注销时进程 id 被杀死,我怎样才能让这个脚本在关闭后继续运行SSH 会话?

环境

  • Ubuntu 12.04
  • Ruby 1.9.3
  • 亚马逊 ec2
  • 事件机器宝石
  • 恶魔宝石

【问题讨论】:

    标签: ruby linux


    【解决方案1】:

    您可以使用nohup 命令。它代表“不挂断”。尝试做

    nohup ruby whatever.rb &

    【讨论】:

    • 没有更干净的方法吗?如果按照您的建议运行守护程序,我可以控制它吗?
    • 您可以使用fg 命令将其重新置于前台。
    • 现在我使用更清洁的解决方案
    【解决方案2】:

    根据我的帖子,我正在使用守护进程 gem,所以我可以以正确的方式控制我的脚本,问题是当我启动守护进程时 ruby daemon.rb start 进程所有者是我的 ssh 用户,所以我的解决方案是改变我的文件的用户和组

    sudo chown root daemon.rb
    sudo chgpr root daemon.rb
    

    现在,为了运行脚本,它必须由 root 用户启动,所以我的脚本在退出 ssh 会话后仍然存在

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 2012-08-29
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多