以编程方式重启 Plesk 上的 Node 应用程序

Programmatically restart Node applications on Plesk

我们正在使用 Plesk 来托管我们的生产服务。

基本上,当我使用 Git 将应用程序部署到 Plesk 时,我需要在 Plesk GUI 的节点页面中按 Restart application 并且效果很好。

但在某些情况下我需要务实地这样做,我需要自动重启节点服务。 Plesk 是否提供此类功能?也许,某种 API 会在 Linux shell 本身内监听呼叫或其他内容。

由于一段时间没有答案,这是我用于 PM2 脚本强制重置的旧解决方法:

如果它是网络服务器应用程序,例如Express.js,添加只能在您的私有网络内访问的受保护路由(出于安全原因),这基本上会通过 process.exit(0) 杀死主进程,并且您的网络服务器将被 PM2 或您使用的任何服务自动重置.但是,我不建议将此方法用于分期以上的任何内容。

我也有这个问题,Plesk 支持也没有给我答案。

根据 Plesk 博客 here:"Moreover, if your app is running in the “development” mode, you don’t need to restart the app every time you modify the contents of a file."

我是 Node 的新手,所以我不完全理解其中的含义,但我想如果您 运行 应用程序处于开发模式,那么您将不需要手动重新启动 Node 应用程序。

当您单击 Restart App 时,您会注意到消息状态 Information: The restart.txt file was touched. Application will be restarted after the first request.

您可以在部署后通过选中 git 存储库选项中的 Enable additional deploy actions 并在此处触摸相同的文件来模拟此操作(我也 运行 npm install)。附上截图。

我发现在 Plesk 上始终有效的唯一方法是这个命令:

touch tmp/restart.txt

即使在开发模式下,Node 似乎也不会自动重启。

更糟糕的是,使用触摸方法,Node 需要大约 5-6 秒才能完成重启。

我的结论是 Plesk 服务器不是进行 Node 开发或测试的错误场所。