콘솔에서 닫힐 때 일부 정리 명령을 실행해야 하는 Bash 스크립트가 있습니다.
기본적으로 정리는 내 Python 데몬에서 다시 시작하는 명령입니다.인) 현재 프로세스를 중지하고 새 프로세스를 시작합니다. Python 데몬 애플리케이션을 모니터링하기 위한 Bash 스크립트입니다.
그러나 문제는 어떤 이유로 Python 프로그램을 다시 시작하기 위해 프로그램을 시작하지 않는다는 것입니다.
Bash 스크립트는 Raspbian을 사용하는 Raspberry Pi의 데스크탑에 있습니다. 두 번 클릭하고 선택하여 실행해야 합니다.터미널에서 실행.
이것이 내 코드의 핵심입니다.
function clean_up {
python3 A restart & #stops the python Deamon if running, then start it. (will start if it wasn't running to begin with)
disown
quit
}
trap clean_up SIGINT
trap clean_up SIGTERM
trap clean_up SIGHUP
trap clean_up SIGCHLD
trap clean_up SIGCONT
python3 A stop
... (code to start monitor)
python3 A start ArgumentToHookToMonistor
답변1
이것이 원하는 대로 될지 확실하지 않지만 문제를 디버깅하는 데 도움이 될 것입니다.
스크립트 시작 부분에서: 작업 제어 활성화(스크립트에서는 기본적으로 비활성화되어 있음):
set -m
그런 다음 clean_up 함수에서 다음
disown
으로 변경합니다.disown %1 2>&1 | tee /path/to/logfile.log
또한 함수에서 스크립트를 수동으로 실행할 때 메시지를 볼 시간을 갖고 싶다면
sleep 3
해당 줄 앞에 추가하십시오.quit