【发布时间】:2013-10-30 23:12:14
【问题描述】:
我正在开发一个打开端口的 ruby 脚本,我正在使用守护进程 gem,它运行良好,但是当我从 ssh 注销时进程 id 被杀死,我怎样才能让这个脚本在关闭后继续运行SSH 会话?
环境
- Ubuntu 12.04
- Ruby 1.9.3
- 亚马逊 ec2
- 事件机器宝石
- 恶魔宝石
【问题讨论】:
我正在开发一个打开端口的 ruby 脚本,我正在使用守护进程 gem,它运行良好,但是当我从 ssh 注销时进程 id 被杀死,我怎样才能让这个脚本在关闭后继续运行SSH 会话?
【问题讨论】:
您可以使用nohup 命令。它代表“不挂断”。尝试做
nohup ruby whatever.rb &
【讨论】:
fg 命令将其重新置于前台。
根据我的帖子,我正在使用守护进程 gem,所以我可以以正确的方式控制我的脚本,问题是当我启动守护进程时 ruby daemon.rb start 进程所有者是我的 ssh 用户,所以我的解决方案是改变我的文件的用户和组
sudo chown root daemon.rb
sudo chgpr root daemon.rb
现在,为了运行脚本,它必须由 root 用户启动,所以我的脚本在退出 ssh 会话后仍然存在
【讨论】: