[systemd-devel] Mandriva messagebus problems at shutdown/reboot
lennart at poettering.net
Mon Jan 17 13:47:24 PST 2011
On Fri, 14.01.11 18:14, Eugeni Dodonov (eugeni at mandriva.com) wrote:
> Hi all,
> when playing with systemd by default on Mandriva (e.g., with
> systemd-sysvinit installed and booting), we have faced a strange problem
> when rebooting - the reboot process simple hanged and would not proceed.
> After some investigation, I've found out that it is caused by the
> systemd stopping our messagebus service (which is, well, dbus). So when
> I went ahead and commented the killproc routine inside stop() of
> messagebus, the rebooting and shutting down worked just fine.
> I know that it is perhaps a simple newbie question, but is it something
> that must be changed in our messagebus init script (attached), or some
> systemd configuration which we could change to make it work?
> I was thinking on relying on the result of 'systemctl is-active
> reboot.service' to check whether the system is being rebooted and, if
> so, do not stop messagebus, but it looks like a hack to me..
Urks. You should use the dbus service files we ship with upstream
dbus. systemd expects that dbus is socket activatable and those service
files are ready for that, however if you use the old SysV scripts than
this is lost and things will go horribly wrong. Your timeout is most
likely caused by something in systemd sleeping on the socket it created
for the socket activation but dbus being gone on the other side.
If upstream supplies native service files, use them. Most of them at
this point of time were written by us, and we had good reasons to.
If you want to you can ship systemd service files and SysV init scripts
in the same RPM file: if systemd finds both the native systemd service
file will take precedence (assuming they are called the same,
i.e. foo.service and /etc/init.d/foo -- if they don't a symlink might
help to add an alias name).
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel