pm2 - 如果没有启动如何启动,如果启动则杀死并启动

时间:2016-01-12 03:13:23

标签: node.js windows pm2

我正在尝试启动pm2,如果它没有运行,或者杀死它并启动它是否如何,我怎样才能在WINDOWS命令行界面中实现这种行为?

在linux中有很多使用grep的解决方案,但是没有任何关于windows的解决方案,有关如何获得这种行为的想法吗?

文档说pm2 start -f app.js会杀死并启动应用程序,但它实际上只是创建了另一个实例。

4 个答案:

答案 0 :(得分:3)

我会这样做:

pm2 stop myprocess.js #this will just say process not found
pm2 start myprocess.js

或者如果你想清除一切:

pm2 kill
pm2 stop

如果您想要更高级的可能性,请查看pm2 api

答案 1 :(得分:2)

似乎没有“单一命令”方式来执行此操作,这在许多开发环境中非常重要,因此这里有一些选择:

将豆香的建议放在一行上。

pm2 stop myprocess; pm2 start myprocess.js

这将输出错误,但是会起作用。

他们的生态系统工具中也内置了此选项。要使用此功能,请进入您正在使用的文件夹并运行

pm2 ecosystem

这将生成文件ecosystem.config.js,您需要确保文件名和脚本正确。

然后您可以使用以下命令:

pm2 startOrReload ecosystem.config.js

但是,我也想查看我的日志记录,因此我使用以下命令:

pm2 flush && pm2 startOrReload ecosystem.config.js && pm2 log

这还将刷新日志,因此您不会看到旧日志。

答案 2 :(得分:2)

使用此:

pm2 delete main.js 2> /dev/null && pm2 start main.js

这部分:2> /dev/null-只会将stderr重定向到/dev/null,这意味着无处。

答案 3 :(得分:1)

你可以这样做

pm2 delete your_app_name || : && pm2 start index.js -i 1 --name 'your_app_name'

: 是返回 0 成功退出代码的空运算符。因此,无论发生什么,pm2 start 命令都会执行(即使 pm2 delete 失败,对于应用尚不存在的情况)。