systemd:使用 fork() 的进程仅在子进程退出后显示日志

systemd:使用 fork() 的进程仅在子进程退出后显示日志

我有一个程序可以fork()运行并退出。它的子进程保持运行大约 50 秒,同时每 5 秒打印一次消息。当我从终端运行时,它按预期运行,父进程退出,然后子进程打印 10 条消息并退出。然后我创建了一个systemd服务单元,仅包含以下内容:

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

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

显然systemd是有效的,因为它显示主进程处于活动状态,直到子进程退出,但是检查journalctl甚至使用 来查看程序systemctl status,屏幕上的子消息仅在子进程退出且进程死亡后才显示。这是为什么?

相关内容