Bry*_*can 7 windows node.js pm2
我试图启动pm2如果它没有运行,或者杀死它并启动它是否如何,我怎么能在WINDOWS命令行界面中实现这种行为?
在linux中有很多使用grep的解决方案,但对于windows没有任何解决方案,有关如何获得此行为的任何想法?
文档说pm2 start -f app.js会杀死并启动应用程序,但它实际上只是创建另一个实例.
小智 8
你可以做这样的事情
pm2 delete your_app_name || : && pm2 start index.js -i 1 --name 'your_app_name'
Run Code Online (Sandbox Code Playgroud)
这:是一个 null 运算符,返回 0 成功退出代码。因此,无论发生什么,pm2 start命令都会执行(即使pm2 delete失败,对于应用程序尚不存在的情况)。
似乎没有“单一命令”的方式来做到这一点,这在许多开发环境中相当重要,所以这里有一些选项:
将soyuka的建议写在一行中。
pm2 stop myprocess; pm2 start myprocess.js
Run Code Online (Sandbox Code Playgroud)
这会输出错误,但它会起作用。
他们还在其生态系统工具中内置了此选项。要使用它,请进入您正在使用的文件夹并运行
pm2 ecosystem
Run Code Online (Sandbox Code Playgroud)
这将生成一个文件ecosystem.config.js,您需要确保其中的名称和脚本正确。
然后您可以使用命令:
pm2 startOrReload ecosystem.config.js
Run Code Online (Sandbox Code Playgroud)
不过,我也想查看我的日志记录,所以我使用以下命令:
pm2 flush && pm2 startOrReload ecosystem.config.js && pm2 log
Run Code Online (Sandbox Code Playgroud)
这也将刷新日志,这样您就不会看到旧日志。
用这个:
pm2 delete main.js 2> /dev/null && pm2 start main.js
Run Code Online (Sandbox Code Playgroud)
这部分:2> /dev/null- 将简单地将 stderr 重定向到/dev/null,意味着无处可去。
我会这样做:
pm2 stop myprocess.js #this will just say process not found
pm2 start myprocess.js
Run Code Online (Sandbox Code Playgroud)
或者如果你想清除所有内容:
pm2 kill
pm2 stop
Run Code Online (Sandbox Code Playgroud)
如果您想要更高级的可能性,请查看pm2 api。
| 归档时间: |
|
| 查看次数: |
6375 次 |
| 最近记录: |