하나 이상의 파일에 pid 번호를 저장해야 합니다. 어떻게 하나요?
답변1
PID 파일은 프로세스 자체에 의해 생성되거나 주 프로그램을 시작한 후 PID 파일을 작성하는 도우미 프로그램에 의해 생성될 수 있습니다.
Unix 계열 시스템에서는 일반적으로 시스템 호출을 사용하여 fork()
새 프로그램을 만듭니다. 호출 프로세스의 복사본을 만들고 상위 프로세스에서는 하위 프로세스 ID(PID)를 반환하고 하위 프로세스에서는 0을 반환합니다. 상위 프로세스(도우미 프로그램)는 PID를 PID 파일에 저장할 수 있습니다. 그런 다음 새 프로그램을 시작하는 데 사용됩니다.exec()
fork()
exec()
프로세스는 getpid()
시스템 호출을 사용하여 자체 PID를 얻은 다음 이를 파일에 저장할 수 있습니다.
셸에서 프로그램을 시작하는 경우 예를 들어 start-stop-daemon
(Debian 기반 시스템의 경우) 프로그램을 시작한 후 PID 파일을 작성할 수 있는 도우미 프로그램을 사용할 수 있습니다. 프로그램이 스스로를 악마화하는 경우 변수에 액세스하여 셸에 PID를 저장할 수도 있습니다 $$
.