Bash 스크립트에서 프로세스 상태를 부울 값으로 사용

Bash 스크립트에서 프로세스 상태를 부울 값으로 사용

저는 아직 Linux 스크립팅에 익숙하지 않지만 패러다임으로 프로그래밍하는 데는 익숙하지 않습니다. 따라서 제 질문에 아주 명확한 답이 있다면 용서해 주시기 바랍니다.

배경: 프로세스가 시작되었는지 확인하고 아직 시작되지 않은 경우 시작하는 시작 스크립트를 작성하고 싶습니다. 좀 더 구체적으로 재부팅 후 iptables, fall2ban, asterisk, mysqld가 정상적으로 시작되었는지 확인하고 싶다.

나는 스크립트가 특정 서비스의 상태를 참/거짓 방식으로 결정하기를 원합니다. IE 서비스가 활성화되어 있는지 여부에 따라 스크립트에서 true 또는 false를 제공하고 싶습니다.

포럼에서 찾은 여러 가지 "ps -aux" 및 "ps -ef" 옵션을 시도했지만 원하는 결과를 얻지 못했거나 설명을 올바르게 이해하지 못했을 수도 있습니다.

나는 서비스가 의미 있는 방식으로 실행되고 있는지 확인하고 그 결과를 사용하여 시작 스크립트의 논리적 흐름을 확인하고 싶습니다.

답변에 미리 감사드리며, 질문이 잘못된 위치에 게시된 경우 사과드립니다.

답변1

일부 대략적인 테스트에서는 내 시스템에서 service실행되고 있지 않은 서비스의 상태를 확인할 때 유틸리티가 종료 코드 3을 반환하는 것으로 나타났습니다. 따라서 이것은 당신에게 도움이 될 수 있습니다:

for svc in iptables fail2ban asterisk mysqld; do
    if ! service "$svc" status > /dev/null 2>&1; then
        echo "$svc is either not running or is an indeterminate state."
    fi
done

관련 정보