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



我有一个 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,则可以通过运行screen -x来重新连接到会话,或者你可以为-x提供一个参数来指定要重新附加到哪个会话(您可以在开始使用screen时为它命名-S标志,以便更容易记住要重新连接到哪个会话(。 您可以使用screen -ls查看当前正在运行的screen会话的列表。

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

如果要像当前尝试一样使用nohup执行此操作,则还需要disown该命令,这将从当前 shell 中删除该作业。 如果这是唯一可以disown -adisown所有工作的方法。

最新更新