BASH - 为什么无限循环不是无限的并且无法重新启动崩溃的进程?

时间:2015-11-12 04:34:17

标签: linux node.js bash centos

我在centos 7服务器上运行了以下脚本。它的工作是永远运行并检查xxx.js是否存活,如果崩溃或被杀死,它必须重新启动它。

但是从3天开始我没有启动我的xxx.js,除非我手动登录到服务器并应用$ ./myloop.sh&

root 23413 0.1 0.1 113252 1640 ? S Nov11 0:59 /bin/bash ./myloop.sh

任何人都可以检查什么是BUG,导致它在没有运行/崩溃时无法执行xxx.js?

#!/bin/bash
while :
do
  # 1
  xxx=$(pgrep -f "xxx.js")
  if [[ "$xxx" ]]; then
    log1="1 - running xxx.js $1 $2"
  else
    log1="1 - re-launch xxx.js $1 $2"
    ps aux | grep "xxx.js" | awk '{print $2}' | xargs kill
    sleep 1
    nohup node /var/www/html/sip-phone/xx/xxx.js &

  fi

  tt=$(date +"%Y-%m-%d %T")
  echo "$tt" "$log1"

  sleep 2
done

0 个答案:

没有答案