【发布时间】:2017-08-08 06:25:00
【问题描述】:
我用 ruby 编写了一个 TCP 服务器,运行在端口 2000 上,带有事件机器。
现在,我做的是 ssh 到我的服务器并运行命令 ruby lib/tcp_server.rb 以打开服务器,但当我注销时它会关闭。
我已经尝试过 nohup 并使用 &,但似乎没有什么能长时间使用服务器。
所以我的问题是,我如何在端口 2000 上部署此服务器并使其保持运行,就像我们如何将 Rails 部署到 nginx 一样。
它不是网络服务器,而是连接设备的 tcp 服务器,如果有帮助的话。
谢谢!
【问题讨论】:
-
你需要守护你的ruby脚本。
-
@pascalbetz 是的,我从阅读中了解到,并认为将
&放在命令末尾应该可以做到,但事实并非如此。您如何建议将其守护进程? -
您可以使用像 daemons 这样的 gem 来使脚本自己守护进程,也可以使用像 daemontools 这样的外部实用程序来守护(和管理)任意脚本。
-
@Shobhit 请尝试 Stefan 提出的解决方案之一。如果您有任何问题,那么您可以提出更具体的问题。
-
目前使用
Process.daemon可以工作,但如果机器重新启动或进程被终止,则不会启动服务器。
标签: ruby sockets nginx deployment tcp