Linux에서 데몬 프로세스를 "고유"하게 만드는 방법이 있습니까?
즉, 데몬이 이미 실행 중이라면 다시 시작하지 마세요. 데몬이 처음 시작될 때 특정 파일을 생성한 다음 해당 파일을 확인하면 될 것이라고 생각했지만 데몬이 종료되고 파일이 삭제되지 않으면 문제가 발생합니다. 특정 데몬(내가 제어하는 코드)이 존재하는지 확인하는 더 많은 "리눅스" 방법이 있습니까?
답변1
기본적으로 PID(프로세스 ID) 추적을 설명했는데, 이는 일반적 systemd
으로 서비스 관리자(예:) 또는 특정 데몬용으로 작성된 스크립트에 의해 수행됩니다. 프로세스가 시작된 후 PID는 파일에 기록되고 나중에 프로세스 상태를 확인하거나 프로세스를 중지하는 데 사용됩니다. 이는 프로그램의 다른 복사본이 실행되는 것을 막는 것이 아니라 서비스 관리자나 시작 스크립트가 다른 인스턴스를 시작하는 것을 막는 것입니다.
해당 ID가 있는 프로세스를 나열하여 "오래된 pid 파일"(프로세스가 실행되고 있지 않지만 파일이 여전히 존재하는 경우) 처리를 감지합니다. 일치하는 프로세스가 발견되지 않으면 프로세스가 부적절하게 중지되고 PID 파일이 삭제된 것으로 추정할 수 있습니다.