首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash脚本-检查多个工作进程

bash脚本-检查多个工作进程
EN

Stack Overflow用户
提问于 2015-08-02 08:56:05
回答 1查看 70关注 0票数 0

进程名称遵循特定的约定worker1.gs,其中X是一个序列号,值从1到4。我在那里有一个检查worker 1和worker 2的代码片段,依此类推……另外,下面的脚本在检查第一个process..how后终止,以修复它吗?

代码语言:javascript
复制
  #!/bin/bash

  pidof /usr/bin/gsx /var/app/transcoding/worker1.gs >/dev/null
  if [[ $? -ne 0 ]] ; then
    echo "Restarting Worker1: $(date)" >> /var/log/httpd/watchdog.txt
    /usr/bin/gsx /var/app/transcoding/worker1.gs
  fi

  pidof /usr/bin/gsx /var/app/transcoding/worker2.gs >/dev/null
  if [[ $? -ne 0 ]] ; then
    echo "Restarting Worker2: $(date)" >> /var/log/httpd/watchdog.txt
    /usr/bin/gsx /var/app/transcoding/worker2.gs
  fi
EN

回答 1

Stack Overflow用户

发布于 2015-08-02 09:42:47

您可以像在C中一样创建循环:

代码语言:javascript
复制
for((i=0;i<10;i++)); do echo "$i" ; done

你可以简化

代码语言:javascript
复制
pidof /usr/bin/gsx /var/app/transcoding/worker1.gs >/dev/null
if [[ $? -ne 0 ]] ; then ... fi

转到

代码语言:javascript
复制
pidof /usr/bin/gsx /var/app/transcoding/worker1.gs >/dev/null || { ... }

合并:

代码语言:javascript
复制
for((i=0;i<10;i++)); do
  pidof /usr/bin/gsx /var/app/transcoding/worker1.gs >/dev/null || {
     echo "Restarting Worker$i: $(date)" >> /var/log/httpd/watchdog.txt
     /usr/bin/gsx /var/app/transcoding/worker$i.gs
  }   
done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31767656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档