在后台运行 sh 脚本,并将该作业添加到作业列表中

在后台运行 sh 脚本,并将该作业添加到作业列表中

我想在我的服务器上运行一个 NodeJS 服务器。

我安装了节点,并创建了一个将自动运行它的脚本。

这是我的脚本的内容init.sh

nodemon ./index.js > logs 2> errors &

但是当我用以下方式运行它时:

./init.sh

然后运行:

jobs

我在作业列表中没有看到它。我必须运行:

ps -eaf | grep nodemon

获取该作业的ID,然后将其终止。

我一直在寻找解决方案,它似乎与我所在的 shell 上下文有关(我正在使用 SSH)。

有人可以帮助我实现我想要做的事情(即将工作发送到工作列表中),或者至少给我指明正确的方向吗?

答案1

jobs打印当前 shell 的作业,同时./init.sh在单独的 shell 中运行脚本。在这个单独的 shell 中,作业控制可能被禁用,但这并不重要,因为无论如何您都无法轻松地从当前 shell 中使用它。

要在您的当前的壳,来源它:

. init.sh

这相当于在当前 shell 中输入文件内容。然后jobs应该显示nodemon为当前 shell 的作业。

相关内容