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

时间:2018-10-08 13:10:41

标签: node.js bash centos nohup

我有一个bash脚本test.sh

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

我启动bash脚本

nohup ~/test.sh &

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

正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您知道经常断开连接,最好的选择是使用screentmux或类似的方法,这样可以在需要时断开连接并稍后重新连接。为此,如果您在交互式外壳上,可以先运行screen,然后运行命令(不需要nohup或将其放在后台),然后键入 ctrl a ,然后 d 从该屏幕会话中分离。然后您可以退出,并且屏幕会话和命令将继续。

如果只有一个screen会话,则可以使用screen -x通过运行screen重新连接到该会话,或者可以给-x赋一个参数来指定哪个一个要重新连接的对象(可以在使用screen标志开始-S时给它起一个名字,以便更容易记住要重新连接的对象)。您可以看到screen当前正在运行的screen -ls会话的列表。

tmux也支持所有这些操作,但是我自己对screen更为熟悉。

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