스크립트가 제대로 작동하지 않습니다. 서비스가 실행되고 있지 않더라도 출력에는 서비스가 실행 중임을 나타낼 수 있습니다.
#!/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