[systemd-devel] Hints for upgrading systemd on a running system

Reindl Harald h.reindl at thelounge.net
Tue Feb 20 19:06:05 UTC 2018



Am 20.02.2018 um 20:00 schrieb Paul Menzel:
> Dear systemd folks,
> 
> We finally are going to upgrade from a very old systemd version 27 from 
> 2011 to the current systemd v237. (Historical reasons.)

hopefully you have a working backup

> Anyway, I already was told about `systemctl daemon-reexec`, and we got 
> it working.

the "reexec" is misleading because it's not possible to terminate PID1 
and start it again on a running system with a new binary

> After that, looking at the output of `systemctl`, there are many units 
> from the old version, which were removed in the meantime.

i doubt that anybody has done such a version jump at all and even if the 
environment won't match anyways - you need to reboot and hope it works 
as well as be prepared for the case it won't boot - it's that easy

make at least sure that initrd has been updated with the new systemd!

> $ systemctl --state=not-found
>    UNIT                                 LOAD      ACTIVE   SUB DESCRIPTION
> ● dev-hugepages.automount              not-found active   waiting 
> dev-hugepages.automount
> ● dev-mqueue.automount                 not-found active   waiting 
> dev-mqueue.automount
> ● sys-kernel-debug.automount           not-found active   waiting 
> sys-kernel-debug.automount
> ● sys-kernel-security.automount        not-found active   waiting 
> sys-kernel-security.automount
> ● auditd.service                       not-found inactive dead 
> auditd.service
> ● console-kit-log-system-start.service not-found active   exited 
> console-kit-log-system-start.service
> ● display-manager.service              not-found inactive dead 
> display-manager.service
> ● hwclock-load.service                 not-found active   exited 
> hwclock-load.service
> ● plymouth-quit-wait.service           not-found inactive dead 
> plymouth-quit-wait.service
> ● plymouth-start.service               not-found inactive dead 
> plymouth-start.service
> ● remount-rootfs.service               not-found active   exited 
> remount-rootfs.service
> ● syslog.service                       not-found inactive dead 
> syslog.service
> ● systemd-kmsg-syslogd.service         not-found active   running 
> systemd-kmsg-syslogd.service
> ● systemd-remount-api-vfs.service      not-found active   exited 
> systemd-remount-api-vfs.service
> ● systemd-sysusers.service             not-found inactive dead 
> systemd-sysusers.service
> ● udev-retry.service                   not-found active   exited 
> udev-retry.service
> ● udev-settle.service                  not-found active   exited 
> udev-settle.service
> ● systemd-logger.socket                not-found active   listening 
> systemd-logger.socket
> ● systemd-shutdownd.socket             not-found active   listening 
> systemd-shutdownd.socket
> ● cryptsetup.target                    not-found active   active 
> cryptsetup.target
> ● syslog.target                        not-found active   active 
> syslog.target
> 
> LOAD   = Reflects whether the unit definition was properly loaded.
> ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
> SUB    = The low-level unit activation state, values depend on unit type.
> 
> 21 loaded units listed. Pass --all to see loaded but inactive units, too.
> To show all installed unit files use 'systemctl list-unit-files'.
> ```
> 
> Do I need to stop those manually beforehand, or is there another way to 
> clean up?
> 
> Is the recommended update procedure documented somewhere?


More information about the systemd-devel mailing list