>백엔드 개발 >Golang >Systemd 관리 상위 프로세스가 종료된 후에도 하위 프로세스를 계속 실행하려면 어떻게 해야 합니까?

Systemd 관리 상위 프로세스가 종료된 후에도 하위 프로세스를 계속 실행하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 19:40:14205검색

How Can I Keep Child Processes Running After the Systemd-Managed Parent Process Exits?

주 프로세스가 Systemd에서 시작될 때 하위 프로세스를 분리할 수 없습니다.

자식 프로세스를 생성하는 주 프로세스를 실행할 때 다음을 수행하는 것이 바람직합니다. 기본 프로세스가 다시 시작되거나 종료되더라도 하위 프로세스는 계속 유지됩니다. 이 동작은 exetest 프로그램과 함께 제공된 예에서 설명한 것처럼 터미널에서 기본 프로세스를 실행할 때 예상대로 작동합니다.

그러나 기본 프로세스가 서비스 파일을 사용하여 Systemd를 통해 시작되면 하위 프로세스가 메인 프로세스의 수명 이후에는 살아남지 못합니다. 이는 Systemd가 제어 그룹의 프로세스를 관리하고 기본적으로 상위 프로세스 종료 시 모든 하위 프로세스를 정리하기 때문에 발생합니다.

이 문제를 해결하려면 Systemd 서비스 정의의 KillMode 설정을 수정할 수 있습니다. 기본적으로 KillMode는 제어 그룹으로 설정되어 있지만 프로세스로 변경하면 기본 프로세스만 종료되어 하위 프로세스가 계속 실행될 수 있습니다.

업데이트된 서비스 파일에는 다음 줄이 포함됩니다.

KillMode=process

이 설정을 사용하면 Systemd를 통해 기본 프로세스가 종료되거나 다시 시작되더라도 exectest의 하위 프로세스는 유지됩니다.

위 내용은 Systemd 관리 상위 프로세스가 종료된 후에도 하위 프로세스를 계속 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.