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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13

上 GPT 吧

1年前 评论

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

1年前 评论
donggan (楼主) 1年前

supervisor 再套一层

1年前 评论
Dash007 1年前
L学习不停 1年前
❤seven (作者) 1年前
KITE 1年前

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

1年前 评论
donggan (楼主) 1年前
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 进程不存在,它将尝试重启指定的进程。如果存在,它将不会执行任何操作。

1年前 评论

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

1年前 评论

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