쉘스크립트를 cron으로 실행하는거 질문합니다.
본문
/php설치경로/php /www/reload.php 를 2초마다 실행하고 싶습니다.
cron으로 실행중인 쉘스크립트의 process가 있는지 확인하고 없을때만 쉘스크립트를 실행하도록 하고 싶습니다.
쉘스크립트를 어찌 짜야할지 모르겠어요.
2시간째 검색하고 있는데 서버는 잘 몰라서 어렵네요. ㅠ_ㅠ
답변 3
헉 자유 게시판에서 물어보시지 뭘 QnA 까지 ..ㅋㅋ
#!/bin/bash
PROGRAMM="myshell.sh" # 실행하고자 하는 프로그램의 이름을 가급적 풀네임으로
LINE="$(ps -ef | grep $PROGRAMM | grep -v grep | wc -l )"
if [ "${LINE}" -gt 0 ]
then
echo "running...." # 현재 실행중임
else
echo "not running" # 현재 실행중이 아님
fi
ps -ef 로 현재 실행중인 프로세스 리스트에서 쉘스크립트가 있는지 확인하시면 어떨까 싶습니다.
검색하여, https://stackoverflow.com/a/2903591 의 코드를 조금 수정한 후, 테스트해보았습니다.
servicename 부분에 서비스명 패턴 문자열을 넣으면 됩니다.
if 문 안에 실행 코드 넣으면 될 듯 하구요.
$ cat ./test.sh
#!/bin/sh
SERVICE="servicename"
RESULT=`ps -ef | sed -n /${SERVICE}/p`
if [ "${RESULT:-null}" = null ]; then
echo "not running"
else
echo "running"
fi
답변을 작성하시기 전에 로그인 해주세요.