systemd子进程没显示在CGroup systemslice中
可能是因为子进程没有正确继承父进程的CGroup。在systemd中,每个进程都会分配到一个CGroup,用于跟踪和管理进程的资源使用情况。
要确保子进程能够正确继承父进程的CGroup,可以使用以下方法之一:
- 使用systemd提供的
Delegate=yes选项。在父进程的unit文件中设置Delegate=yes,这样子进程就会继承父进程的CGroup。例如:
[Service]
ExecStart=/path/to/your/program
Delegate=yes
- 使用
systemd-run命令启动子进程。systemd-run命令会自动将子进程放入与父进程相同的CGroup中。例如:
systemd-run /path/to/your/program
- 在父进程中手动将子进程移动到正确的CGroup。可以使用
systemd-cgexec命令将子进程移动到指定的CGroup中。例如:
systemd-cgexec -g system.slice /path/to/your/program
以上方法中,第一种方法是最简单和推荐的方法,因为它会自动处理CGroup的继承问题。如果子进程仍然没有显示在CGroup中,可能是因为父进程的unit文件中没有正确设置Delegate=yes选项,或者被启动的子进程没有正确继承父进程的CGroup。
原文地址: https://www.cveoy.top/t/topic/iUwE 著作权归作者所有。请勿转载和采集!