실행 중이 아닌 경우 grep 재시작 스크립트

실행 중이 아닌 경우 grep 재시작 스크립트

안녕하세요 여러분, 여기에 문제가 있습니다. 백그라운드에서 nohup php 스크립트를 실행하고 충돌 시 항상 실행되고 다시 시작되는지 확인해야 합니다. 매분마다 crontab 작업을 사용하여 다음 bash 스크립트를 실행하고 있습니다.

#!/usr/bin/bash
ps -ef|grep -v grep |grep script_name
if [ $? != 0 ]; then
  nohup php path/to/script/script_name &
fi

스크립트를 수동으로 종료했지만 다시 시작되지 않았습니다. 현재 Centos 6.5에서 이 작업을 수행해야 합니다. Centos 7.1에서 동일한 구성을 테스트했는데 작동합니다. Centos 6.5에서 작동하는 대안이 있을까요?

답변1

가장 좋은 방법은 systemd를 사용하는 것이지만 centos 6.5를 사용할 수 있는지는 모르겠습니다.

systemd가 없는 경우: 스크립트를 확인하는 스크립트보다 PHP를 시작하고 다시 시작하는 스크립트를 실행하는 것이 더 쉬울 것입니다. 이 같은:

#! /bin/bash
while ! php path/to/script/script_name; do
    :
done

원하는 경우 nohup을 사용하여 이 래퍼 스크립트를 시작할 수 있습니다.

일반적으로 다음을 사용해야 합니다 pgrep.

pgrep --full script_name

관련 정보