systemd: fork()를 사용하는 프로세스는 하위 프로세스가 종료된 후에만 로그를 표시합니다.

systemd: fork()를 사용하는 프로세스는 하위 프로세스가 종료된 후에만 로그를 표시합니다.

fork()실행되고 종료되는 프로그램이 있습니다 . 해당 하위 프로세스는 5초마다 메시지를 인쇄하는 동안 약 50초 동안 계속 실행됩니다. 터미널에서 실행하면 예상대로 실행되고 상위 프로세스가 종료된 다음 하위 프로세스가 10개의 메시지를 인쇄하고 종료됩니다. 그런 다음 systemd다음을 사용하여 서비스 단위를 만들었습니다 .

[Unit]
Description=Program that forks
Documentation=https://program5.example.com

[Service]
Type=forking
ExecStart=/root/fork

분명히 systemd자식 프로세스가 종료될 때까지 활성 상태인 기본 프로세스를 표시하는 것처럼 작동하지만, journalctl프로그램을 보기 위해 사용하는 경우에도 systemctl status화면의 자식 메시지는 자식 프로세스가 종료되고 프로세스가 종료된 후에만 표시됩니다. 왜 그런 겁니까?

관련 정보