我的 Linux 托管服务器上运行着一个节点应用程序。
有时应用程序崩溃,我需要重新启动它,因此我登录并输入以下命令:
pkill node
cd public_html/n49900_dpndev
node server.js &
应用程序再次运行。
现在我想将其放入脚本中,因此我只需启动该脚本(或者例如可以从 PHP 脚本执行它)。
我创建了一个名为“startnode”的文件:
#!/bin/bash
pkill node
cd public_html/n49900_dpndev
node server.js &
我用 改变了权限chmod 755 startnode
。
但是当我用它执行时,./startnode
它会响应:
已终止
我需要做什么才能使我手动输入的命令在 bash 脚本中也能起作用?
答案1
您的脚本名称中包含“node”,并且pkill node
可能正在终止它。
仅使用pkill -x node
名称完全为“node”的进程可能更符合您的喜好。或者甚至pkill -f -x "node server.js"
使用完全完整的命令行来终止进程。
答案2
pkill
正在终止由名称包含单词的程序启动的每个进程,node
即使你编写了脚本
将脚本重命名为不包含单词的任何名称node