问下如何能保证pm2进程一直存在?

情况是这样的,我在windows系统下执行pm2命令,然后就有几个pm2的进程,然后我想加一个定时任务,能定时重启该进程
我用终端窗口执行:pm2 pid index
5072
12820
24200
得到三个进程id
我想如何写一个bat文件,当获取到有进程存在,那就不重启进程,如果进程不存在那就重启进程

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 13

上 GPT 吧

4个月前 评论

pm2的作用就是进程守护啊,咋还在外面套一层

4个月前 评论
donggan (楼主) 4个月前
$ pm2 startup
$ pm2 save
4个月前 评论

supervisor 再套一层

4个月前 评论
Dash007 4个月前
L学习不停 4个月前
❤seven (作者) 4个月前
KITE 4个月前

建议抽空学习下linux systemd模块,用systemd管理pm进程服务。

4个月前 评论
donggan (楼主) 4个月前
Junwind

要实现这个功能,你可以使用以下的步骤:

创建一个新的 .bat 文件。 在 .bat 文件中,首先检查 pm2 进程是否存在。 如果存在,则不执行任何操作。 如果不存在,则重启 pm2 进程。 以下是一个简单的示例 .bat 文件:

bat @echo off

REM 检查 pm2 进程是否存在
tasklist | findstr "pm2.exe" > nul
if %errorlevel% neq 0 (
echo pm2 进程不存在,正在重启...
call pm2 restart [进程ID或名称]
exit /b
)

echo pm2 进程已存在,无需重启。
exit /b 在上面的脚本中,你需要替换 [进程ID或名称] 为你想要重启的 pm2 进程的 ID 或名称。如果你想要重启所有 pm2 进程,你可以移除这部分并直接调用 pm2 restart all。

保存上述内容为 check_pm2.bat 或其他你喜欢的名称,然后双击运行它。如果 pm2 进程不存在,它将尝试重启指定的进程。如果存在,它将不会执行任何操作。

4个月前 评论

windows 也有服务管理的 ,sc 命令了解下,你把pm2当成服务加进去

4个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!