728x90
안녕하세요.
Linux에서 백그라운드로 프로세스를 동작시키는데 이유 없이 프로세스가 죽어서 당황하셨던 경험이 있으신가요?
이 문제를 해결했던 방법을 공유합니다.
소스 코드
#!/bin/bash
# 확인할 프로세스 이름
process_name="your_process_name"
# 프로세스가 실행 중인지 확인
if ps aux | grep "$process_name" > /dev/null; then
echo "프로세스 $process_name이 이미 실행 중입니다."
else
echo "프로세스 $process_name이 실행 중이 아닙니다. 다시 시작합니다."
# 여기에 프로세스를 다시 시작하는 명령어를 추가합니다.
# 예: /path/to/your/command &
fi
소스 코드 동작 설명
ps 명령어를 통해 현재 실행중인 프로세스 목록을 가져오고, 이 목록에서 grep 명령어를 통해 특정 프로세스 이름이 담긴 것만 추출합니다. 이때 프로세스가 실행중이 아니라면 else문으로 이동하여 다시 프로세스를 실행시킵니다. 이 Bash 스크립트를 백그라운드에서 동작시키면 지속적인 실행을 원하는 프로세스를 추적하며 실행을 유지시킬 수 있습니다.
마치며
잘 작성된 스크립트라면 오류발생에 대한 조치 중 "재시작"에 관련된 옵션은 보통 준비가 되어있을 것입니다. 다만, 저의 경우에는 특정 스크립트에서 이 문제에 대해 다루지 않아 알 수 없는 오류가 발생되면 프로세스가 종료되어 멈추는 상황이 있었습니다. 저는 이 프로세스가 자동으로 다시 실행되길 길 원해 간단하게 스크립트를 작성하게 되었습니다.
자동으로 동작하길 원하는 스크립트는 주기적인 확인이 필수입니다 :)
echo를 활용한 Log를 지속적으로 기록하여 꼭 트래킹하시기 바랍니다!
728x90
'Development > Shell' 카테고리의 다른 글
[Bash] 특정 디렉토리를 감시하고 파일을 이동/복사 하기 (2) | 2024.10.03 |
---|