linux - 启动一个新的屏幕 session 以运行启动另一个屏幕 session 的脚本

标签 linux node.js bash terminal

我正在尝试使用 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/

相关文章:

javascript - Google Analytics 片段导致 Linux Firefox 中的页面刷新

python - 如何使用 python 将 pdf 文件打印到标准输出?

linux - 库伯内斯 : hostname regex failed

node.js - meteor 文件系统

javascript - 路由获取参数和应用逻辑

python - 如何安排子流程?

javascript - 带有对象的 fs.writefile 返回 [object object]

linux - Bash,用 tr 改变整个单词

linux - 这是结束 ssh session 最温和的方式

bash - 从终端输出中删除发送命令,同时保留所需的输出