다음 위치에 REST API가 정의되어 있다고 가정해 보겠습니다.
rest-api.py
나는 "영원히"를 만들고 싶다:
setsid rest-api.py 2>&1 > /var/rest-api/log.0
logrotate rest-api.conf
# now: command to watch rest-api.py for failure and re-up
다음으로, 쓰기 타임스탬프가 수정되면(즉, 변경 사항을 저장할 때) 코드를 다시 시작하고 싶습니다. 어떻게 해야 하나요?
사용할 수 있다는 것을 알고 있지만 make
이것이 cron
최선의 방법입니까?
답변1
inotifywait -e modify rest-api.py
모든 작업을 수행하는 데 필요한 몇 가지 다른 세부 사항이 있습니다.
rest_api=$(pwd)/rest-api.py
rest_api_conf=$(pwd)/rest-api.conf
rest_api_log=/var/log/rest-api/rest-api.log
# log
mkdir -p /var/log/rest-api
logrotate $rest_api_conf
# daemon
setsid $rest_api 2>&1 >> $rest_api_log &
pid=$!
trap "kill $pid" exit
while true; do
inotifywait -e modify $rest_api
kill $pid
setsid $rest_api 2>&1 >> $rest_api_log &
pid=$!
trap "kill $pid" exit
done
마지막으로 백그라운드 프로세스나 데몬으로 실행합니다.
./rest-api.sh &
setsid ./rest-api.sh 2>&1 >/dev/null