如何启动一个在 ssh 会话结束时不会结束的进程?
不知何故,这不是通过谷歌搜索产生的。
我正在用 Node.js 编写服务器脚本。我通过使用节点程序执行脚本来启动服务器:
node myserver.js
但服务器的保持状态取决于我的 ssh 会话。我怎样才能使这个(以及所有此类过程)持久化?初始化.d?
Somehow this isn't yielded by a google search.
I'm scripting a server in node.js. I start the server by executing its script with the node program:
node myserver.js
But the server staying up is dependent on my ssh session. How can I make this (and all such processes) persistent? Init.d?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用
nohup
命令:来自 http://en.wikipedia.org/wiki/诺哈普
试试这个:
Use the
nohup
command:From http://en.wikipedia.org/wiki/Nohup
Try this:
您是否尝试过GNU screen?使用它,当您结束 ssh 会话时,进程可以继续运行。
nohup
是一个标准的 *nix 命令,它允许您执行相同的操作,尽管方式更加有限。Have you tried GNU screen? Using it, a process can continue to run when you end your ssh session.
nohup
is a standard *nix command that will allow you to do the same, albeit in a more limited way.使用屏幕。从终端输入 screen,然后启动您的进程。如果断开连接,您可以通过键入“screen -ls”(查看活动屏幕)和“screen -r”重新连接来重新连接到 ssh 会话。
Use screen. Type screen from the terminal and then launch your process. If you disconnect you can reconnect to the ssh session, by typing 'screen -ls' (to see active screens) and 'screen -r' to reconnect.
该程序需要以守护进程模式运行。 这里有一篇关于在 Ubuntu 中执行此操作的好文章。
The program needs to run in a daemonized mode. Here's a good post for doing this in Ubuntu.
nohup 很适合运行该作业。如果作业已经在运行,您可以尝试 disown -h (至少在 bash 中)
nohup is good to run the job under. If the job is already running, you can try disown -h (at least in bash)