mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
unit: add units for new "systemd-sysupdate" tool
These unit (if enabled) will try to update the OS in regular intervals. Moreover, every day in the early morning this will attempt to reboot the system if there's a newer version installed than running.
This commit is contained in:
parent
43cc7a3ef4
commit
4a05d7ed72
@ -140,6 +140,8 @@ units = [
|
|||||||
['systemd-reboot.service', ''],
|
['systemd-reboot.service', ''],
|
||||||
['systemd-rfkill.socket', 'ENABLE_RFKILL'],
|
['systemd-rfkill.socket', 'ENABLE_RFKILL'],
|
||||||
['systemd-sysext.service', 'ENABLE_SYSEXT'],
|
['systemd-sysext.service', 'ENABLE_SYSEXT'],
|
||||||
|
['systemd-sysupdate.timer', 'ENABLE_SYSUPDATE'],
|
||||||
|
['systemd-sysupdate-reboot.timer', 'ENABLE_SYSUPDATE'],
|
||||||
['systemd-sysusers.service', 'ENABLE_SYSUSERS',
|
['systemd-sysusers.service', 'ENABLE_SYSUSERS',
|
||||||
'sysinit.target.wants/'],
|
'sysinit.target.wants/'],
|
||||||
['systemd-tmpfiles-clean.service', 'ENABLE_TMPFILES'],
|
['systemd-tmpfiles-clean.service', 'ENABLE_TMPFILES'],
|
||||||
@ -236,6 +238,8 @@ in_units = [
|
|||||||
['systemd-suspend.service', ''],
|
['systemd-suspend.service', ''],
|
||||||
['systemd-sysctl.service', '',
|
['systemd-sysctl.service', '',
|
||||||
'sysinit.target.wants/'],
|
'sysinit.target.wants/'],
|
||||||
|
['systemd-sysupdate.service', 'ENABLE_SYSUPDATE'],
|
||||||
|
['systemd-sysupdate-reboot.service', 'ENABLE_SYSUPDATE'],
|
||||||
['systemd-timedated.service', 'ENABLE_TIMEDATED',
|
['systemd-timedated.service', 'ENABLE_TIMEDATED',
|
||||||
'dbus-org.freedesktop.timedate1.service'],
|
'dbus-org.freedesktop.timedate1.service'],
|
||||||
['systemd-timesyncd.service', 'ENABLE_TIMESYNCD'],
|
['systemd-timesyncd.service', 'ENABLE_TIMESYNCD'],
|
||||||
|
20
units/systemd-sysupdate-reboot.service.in
Normal file
20
units/systemd-sysupdate-reboot.service.in
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
#
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Reboot Automatically After System Update
|
||||||
|
Documentation=man:systemd-sysupdate-reboot.service(8)
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart={{ROOTLIBEXECDIR}}/systemd-sysupdate reboot
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=systemd-sysupdate-reboot.timer
|
20
units/systemd-sysupdate-reboot.timer
Normal file
20
units/systemd-sysupdate-reboot.timer
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
#
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Reboot Automatically After System Update
|
||||||
|
Documentation=man:systemd-sysupdate-reboot.service(8)
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=4:10
|
||||||
|
RandomizedDelaySec=30min
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
34
units/systemd-sysupdate.service.in
Normal file
34
units/systemd-sysupdate.service.in
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
#
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Automatic System Update
|
||||||
|
Documentation=man:systemd-sysupdate.service(8)
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
NotifyAccess=main
|
||||||
|
ExecStart={{ROOTLIBEXECDIR}}/systemd-sysupdate update
|
||||||
|
CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER CAP_FSETID CAP_MKNOD CAP_SETFCAP CAP_SYS_ADMIN CAP_SETPCAP CAP_DAC_OVERRIDE CAP_LINUX_IMMUTABLE
|
||||||
|
NoNewPrivileges=yes
|
||||||
|
MemoryDenyWriteExecute=yes
|
||||||
|
ProtectHostname=yes
|
||||||
|
RestrictRealtime=yes
|
||||||
|
RestrictNamespaces=net
|
||||||
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||||
|
SystemCallFilter=@system-service @mount
|
||||||
|
SystemCallErrorNumber=EPERM
|
||||||
|
SystemCallArchitectures=native
|
||||||
|
LockPersonality=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=systemd-sysupdate.timer
|
30
units/systemd-sysupdate.timer
Normal file
30
units/systemd-sysupdate.timer
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
#
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Automatic System Update
|
||||||
|
Documentation=man:systemd-sysupdate.service(8)
|
||||||
|
|
||||||
|
# For containers we assume that the manager will handle updates. And we likely
|
||||||
|
# can't even access our backing block device anyway.
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Trigger the update 15min after boot, and then – on average – every 6h, but
|
||||||
|
# randomly distributed in a 2h…6h interval. In addition trigger things
|
||||||
|
# persistently once on each saturday, to ensure that even on systems that are
|
||||||
|
# never booted up for long we have a chance to to do the update.
|
||||||
|
OnBootSec=15min
|
||||||
|
OnUnitActiveSec=2h
|
||||||
|
OnCalendar=Sat
|
||||||
|
RandomizedDelaySec=4h
|
||||||
|
Persistent=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
Loading…
Reference in New Issue
Block a user