bash, nohup sh 文件启动节点并且节点在注销时挂起?

bash, nohup sh file launches node and node hangs up on logoff?

我有一个 bash 脚本 test.sh

node ~/script1.js && \
node ~/script2.js && \
node ~/script3.js

我启动 bash 脚本

nohup ~/test.sh &

然后由于失去与服务器的连接而断开连接。我希望脚本在我使用 nohup 时继续,但是节点脚本收到挂断信号。

正确的做法是什么?

如果您知道您经常会断开连接,那么最好的办法是使用 screentmux 或类似的方式,这样您就可以在以后需要时断开连接并重新连接。要做到这一点,如果你在交互式 shell 中,你可以说 运行 screen,然后 运行 你的命令(不需要 nohup 或将其置于后台)然后键入 ctrla 然后 d 以从该屏幕会话中分离。然后您可以退出,屏幕会话和命令将继续。

使用 screen 如果只有一个 screen 会话,您可以通过 运行ning screen -x 重新连接到会话,或者您可以给 -x 来指定要重新连接到哪个(你可以在开始 screen 时用 -S 标志给它起一个名字,这样更容易记住要重新连接到哪个)。您可以看到当前 运行 宁 screen 会话列表 screen -ls.

tmux 也支持所有这些,但我自己更熟悉 screen

如果您想像当前尝试那样使用 nohup 完成此操作,您还需要 disown 命令,这将从您当前的 shell 中删除该作业.如果那是唯一一个你可以 disown -adisown 你所有的工作。