如何启动一个在 ssh 会话结束时不会结束的进程?

发布于 2024-09-30 00:21:16 字数 160 浏览 2 评论 0原文

不知何故,这不是通过谷歌搜索产生的。

我正在用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

复古式 2024-10-07 00:21:16

使用 nohup 命令:

来自 http://en.wikipedia.org/wiki/诺哈普

nohup 是一个 POSIX 命令,用于忽略 HUP(挂断)信号,使命令在发出该命令的用户注销后继续运行。按照惯例,HUP(挂断)信号是终端根据注销进程发出警告的方式。

试试这个:

nohup node myserver.js &

Use the nohup command:

From http://en.wikipedia.org/wiki/Nohup

nohup is a POSIX command to ignore the HUP (hangup) signal, enabling the command to keep running after the user who issues the command has logged out. The HUP (hangup) signal is by convention the way a terminal warns depending processes of logout.

Try this:

nohup node myserver.js &
﹉夏雨初晴づ 2024-10-07 00:21:16

您是否尝试过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.

魂归处 2024-10-07 00:21:16

使用屏幕。从终端输入 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.

束缚m 2024-10-07 00:21:16

该程序需要以守护进程模式运行。 这里有一篇关于在 Ubuntu 中执行此操作的好文章

The program needs to run in a daemonized mode. Here's a good post for doing this in Ubuntu.

↘人皮目录ツ 2024-10-07 00:21:16

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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文