为什么我的 bash 脚本终止?

为什么我的 bash 脚本终止?

我的 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

相关内容