[systemd-devel] systemd release agent

Kevin Wilson wkevils at gmail.com
Tue Apr 16 10:45:26 PDT 2013


Hello,
Thanks a lot for your answer.
Something is not clear to me with this test I made (on Fedora 18).
I hope that someone can explain.
I ran:
cat /sys/fs/cgroup/systemd/release_agent
/usr/lib/systemd/systemd-cgroups-agent

No I moved /usr/lib/systemd/systemd-cgroups-agent to some backup.
and made sure that:

ls /usr/lib/systemd/systemd-cgroups-agent
ls: cannot access /usr/lib/systemd/systemd-cgroups-agent: No such file
or directory

Now I tried killing two services that I know are under systemd cgroups:
cat  /sys/fs/cgroup/systemd/system/bluetooth.service/tasks
671

Apr 16 20:40:05 localhost systemd[1]: bluetooth.service: main process
exited, code=killed, status=9/KILL
Apr 16 20:40:05 localhost systemd[1]: Unit bluetooth.service entered
failed state

And with mcelog it was the same:

...
Apr 16 20:33:46 localhost systemd[1]: mcelog.service: main process
exited, code=killed, status=9/KILL
Apr 16 20:33:46 localhost systemd[1]: Unit mcelog.service entered failed state
...

both folders, bluetooth.service and mcelog.service (under
 /sys/fs/cgroup/systemd/system/) were removed.

How come ? could it be that the messages to the DBus are not sent
by systemd-cgroups-agent?
I also made sure, and
ps aux | g systemd-cgroups-agent
returns nothing.

Any ideas?

rgs
Kevin

















On Tue, Apr 9, 2013 at 6:07 PM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Tue, 09.04.13 16:39, Kevin Wilson (wkevils at gmail.com) wrote:
>
>> Hello,
>> On Fedora 18, running:
>> mount | grep release
>> gives:
>> cgroup on /sys/fs/cgroup/systemd type cgroup
>> (rw,nosuid,nodev,noexec,relatime,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
>>
>> I know and have tried cgroup release_agent;
>>
>> I also noticed that  notify_on_release is enabled in systemd cgroups:
>> cat  /sys/fs/cgroup/systemd/notify_on_release
>> gives 1
>> (also in the children, user and system cgroups)
>>
>> what does /usr/lib/systemd/systemd-cgroups-agent do ? what it is for ?
>> What does it do when it is invoked ?
>
> it's how the kernel notifies about cgroups running empty. The kernel
> forks the specified binary out. We install a binary there that simply
> sends a message on the bus about the cgroup running empty.
>
> It's an awful kernel API, but the only one there is for this.
>
> Lennart
>
> --
> Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list