我想在我的服务器上运行一个 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 的作业。