在systemd中,每个服务都有自己的CGroup,用于限制和控制服务进程的资源使用。然而,当服务启动子进程时,子进程可能不会被放置在同一个CGroup中。

这是因为systemd使用了一个多层级的CGroup层次结构来组织和管理进程。每个服务的主进程会被放置在一个独立的CGroup中,而子进程则可以被放置在不同的CGroup中,这取决于它们的创建方式和systemd的配置。

例如,如果子进程是通过fork()系统调用创建的,它将继承父进程的CGroup,并被放置在同一个CGroup中。但是,如果子进程是通过exec()系统调用创建的,它将不会继承父进程的CGroup,而是根据systemd的配置进行分配。

这种行为可以通过systemd的配置文件进行调整。可以使用"Delegate=yes"选项来确保子进程被放置在同一个CGroup中。另外,可以使用"JoinControllers="选项来指定哪些CGroup控制器应该被子进程继承。

总而言之,systemd的子进程不一定会被放置在同一个CGroup中,这取决于进程的创建方式和systemd的配置。可以通过适当的配置来控制子进程的CGroup归属。

systemd 子进程不在同一个CGroup中

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

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