Linux 스크립트가 올바르게 실행되지 않습니다.

Linux 스크립트가 올바르게 실행되지 않습니다.

스크립트가 제대로 작동하지 않습니다. 서비스가 실행되고 있지 않더라도 출력에는 서비스가 실행 중임을 나타낼 수 있습니다.

#!/bin/sh
is_running=`ps aux | grep -v grep | grep "$1" | wc -l`
echo $is_running
if [ "$is_running" > 0 ]; then
   echo "OK: $1"
   exit 0
else
   echo "Problem: $1 is not running"
   exit 2
Fi

다음 명령을 사용하여 실행하십시오.sh scriptname couchbase-server

답변1

명령줄 인수가 확인 중인 프로세스와 충돌하므로 항상 true입니다. 이 시나리오를 테스트하려면 스크립트의 첫 번째 줄에 sleep 60을 추가하고 다음과 같이 실행하세요.

sh  script.sh ntpd & ps aux | grep ntpd
[1] 6401
root      6401  0.0  0.0 111940  1208 pts/3    S    16:40   0:00 sh script.sh ntpd

grep -v script.sh이 문제를 극복하기 위해 추가하거나pidof ntpd | wc -w

이 시도,

is_runing=`ps aux | grep -v grep | grep "$1" | grep -v "$(basename $0)" | wc -l`
echo $is_runing
if [ "$is_runing" -gt 0 ]; then
   echo "OK: $1"
   exit 0
else
   echo "Problem: $1 is not running"
   exit 2
fi

관련 정보