我正在尝试启动pm2,如果它没有运行,或者杀死它并启动它是否如何,我怎样才能在WINDOWS命令行界面中实现这种行为?
在linux中有很多使用grep的解决方案,但是没有任何关于windows的解决方案,有关如何获得这种行为的想法吗?
文档说pm2 start -f app.js
会杀死并启动应用程序,但它实际上只是创建了另一个实例。
答案 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
失败,对于应用尚不存在的情况)。