我正在尝试使用 node.js 制作一个程序,该程序需要能够提取新的更新并自行重新启动。为此,我制作了一个 auto.sh 脚本,其中包含以下代码:
screen -S GNode -X quit
screen -dmS GNode -L node server
不幸的是,当我尝试从 Node 运行该脚本时,似乎会发生第一行运行并且我的 Node 应用程序关闭(因为它正在该 session 中运行),但第二行没有执行,这是一个令人遗憾的事情。
我最终所做的是使用命令运行另一个名为 ScriptRunner 的屏幕 session
screen -dmS ScriptRunner sh auto.sh
由于某种原因,当我运行该命令然后检查打开的屏幕 session 时,没有任何 session 。因此,第一行再次被执行,但第二行没有执行。这似乎不是我的 Node 程序的问题,因为当我直接在终端中运行最后一个命令时,会发生同样的事情。
有谁知道可能出了什么问题吗?我对 Linux 和终端很陌生。
最佳答案
尝试在运行下一个 session 之前添加延迟:
screen -S GNode -X quit
sleep 10s ## You can adjust this value.
screen -dmS GNode -L node server
关于linux - 启动一个新的屏幕 session 以运行启动另一个屏幕 session 的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709057/