<div dir="ltr"><div>Hello,</div><div><br></div><div>I am creating a software which consists of one daemon which forks several processes from user requests.</div><div>This is basically acting like a job scheduler.<br></div><div><br></div><div>The daemon is started using a unit file and with Delegate=yes option, because every process must be constrained differently. I manage my cgroup hierarchy, create some leaves into the tree and put each pid there.</div><div>For example, after starting up the service and receiving 3 user requests, a tree under /sys/fs/cgroup/system.slice/ could look like:<br></div><div><br></div><div>sgamba1.service/<br>├── daemon_pid<br>├── user1_stuff<br>├── user2_stuff<br>└── user3_stuff<br></div><div><br></div><div>I create the hierarchy and set cgroup.subtree_control in the root directory (sgamba1.service in the example) and everything runs smoothly, until when I decide to restart my service.</div><div></div><div><br></div><div>The service then cannot restart:<br></div><div><br></div><div>feb 18 19:48:52 llit systemd[1143296]: sgamba1.service: Failed to attach
 to cgroup /system.slice/sgamba1.service: Device or resource busy</div><div>feb
 18 19:48:52 llit systemd[1143296]: sgamba1.service: Failed at step 
CGROUP spawning /path_to_bin/mydaemond: Device or 
resource busy</div><div><br></div><div>This is because systemd tries to put the pid of the new daemon in sgamba1.service/cgroup.procs and this would break the "no internal process constrain" rule for cgroup v2, since sgamba1.service is not a leaf anymore because it has subtree_control enabled for the user stuff.</div><div><br></div><div>One hard requirement is that user stuff must live even if the service is restarted.<br></div><div><br></div><div>What's the way to achieve that? I see one easy way, which is to move user stuff into its own cgroup and out of sgamba1.service/, but then it will run outside a Delegate=yes unit. What can happen then?</div><div>Will systemd eventually migrate my processes?<br></div><div></div><div>How do services workaround that issue?</div><div>If I am moving user stuff into the root /sys/fs/cgroup/user_stuff/, will systemd touch my directories?</div><div><br></div><div>Thank you.</div><div></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div><span style="color:rgb(106,168,79)"><span style="color:rgb(0,0,0)"></span><br></span></div><div dir="ltr"><b style="color:rgb(106,168,79)">--<br>Felip Moll</b><br><font style="color:rgb(153,153,153)" size="1">E-Mail - <a href="mailto:lipixx@gmail.com" target="_blank">lipixx@gmail.com</a><br>Tlf. - +34 659 69 40 47</font><br></div></div></div></div></div></div>