为什么我的 bash 脚本终止?

Edw*_*uay 1 linux bash node.js

我的 Linux 托管服务器上运行着一个节点应用程序。

有时应用程序崩溃,我需要重新启动它,所以我登录并键入以下命令:

pkill node
cd public_html/n49900_dpndev
node server.js &
Run Code Online (Sandbox Code Playgroud)

然后应用程序再次运行。

现在我想把它放到一个脚本中,所以我只需要启动脚本(或者可以从一个 PHP 脚本执行它,例如)。

我创建了一个名为“startnode”的文件:

#!/bin/bash
pkill node
cd public_html/n49900_dpndev
node server.js &
Run Code Online (Sandbox Code Playgroud)

我用chmod 755 startnode.

但是当我用./startnode它执行它时,它会响应:

已终止

我需要做什么才能让我手动输入的命令也能在 bash 脚本中工作?

chu*_*utz 5

您的脚本名称中包含“节点”,pkill node可能正在杀死它。

使用pkill -x node仅杀死名称恰好为“节点”的进程可能更符合您的喜好。或者甚至pkill -f -x "node server.js"使用确切的完整命令行终止进程。