可能是因为子进程没有正确继承父进程的CGroup。在systemd中,每个进程都会分配到一个CGroup,用于跟踪和管理进程的资源使用情况。

要确保子进程能够正确继承父进程的CGroup,可以使用以下方法之一:

  1. 使用systemd提供的Delegate=yes选项。在父进程的unit文件中设置Delegate=yes,这样子进程就会继承父进程的CGroup。例如:
[Service]
ExecStart=/path/to/your/program
Delegate=yes
  1. 使用systemd-run命令启动子进程。systemd-run命令会自动将子进程放入与父进程相同的CGroup中。例如:
systemd-run /path/to/your/program
  1. 在父进程中手动将子进程移动到正确的CGroup。可以使用systemd-cgexec命令将子进程移动到指定的CGroup中。例如:
systemd-cgexec -g system.slice /path/to/your/program

以上方法中,第一种方法是最简单和推荐的方法,因为它会自动处理CGroup的继承问题。如果子进程仍然没有显示在CGroup中,可能是因为父进程的unit文件中没有正确设置Delegate=yes选项,或者被启动的子进程没有正确继承父进程的CGroup。

systemd子进程没显示在CGroup systemslice中

原文地址: https://www.cveoy.top/t/topic/iUwE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录