【问题标题】:PM2: Return list of stopped processes and restart only themPM2:返回已停止进程的列表并仅重新启动它们
【发布时间】:2021-11-28 18:38:23
【问题描述】:

基本上是标题。我最近注意到我们的一些进程在服务器启动期间遇到错误,导致它们停止,并且 pm2 不会自动重新启动它们。运行pm2 restart \process name\ 将他们带回来。作为我调查根本原因时的权宜之计,我想设置一个脚本以仅在停止的进程上使用 pm2 restart ,以便在服务器重新启动时使用。到目前为止,我已经能够提取已停止进程的列表和状态:

pm2 ls | grep "stopped" | grep "process"

但是,在此之后,我不确定如何继续在进程上使用 pm2 restart。我是否必须将进程名称提取到一个列表中并循环遍历它,还是有更好的方法来做到这一点?

【问题讨论】:

    标签: grep pm2 restart reboot


    【解决方案1】:

    你可以使用下一个命令行:

    pm2 ls | grep "stopped" | grep "process" | awk '{print $4}' | xargs -I{} pm2 start {}
    
    • pm2 ls 获取所有进程的列表。

    • grep "stopped" | grep "process" 过滤所有有 stopped 字的行和所有有 process 字的行。

    • awk '{print $4}' 获取每行的第四列,每行的格式如下:

      | 20 | process_name | ...
      ^  ^ ^      ^       ^
      1  2 3      4       5 ...
      
    • xargs -I{} pm2 start {} 获取每个结果行并将它们传递给pm2 start 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多