mirror of
https://git.proxmox.com/git/systemd
synced 2025-12-31 13:10:59 +00:00
152 lines
4.7 KiB
Bash
152 lines
4.7 KiB
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
_systemctl() {
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl "$@"
|
|
fi
|
|
}
|
|
|
|
_update_catalog() {
|
|
journalctl --update-catalog || true
|
|
}
|
|
|
|
# Update Message Catalogs database and reload in response to dpkg triggers
|
|
if [ "$1" = "triggered" ]; then
|
|
shift
|
|
for trigger in $@; do
|
|
case $trigger in
|
|
/usr/lib/systemd/catalog)
|
|
_update_catalog
|
|
;;
|
|
/etc/init.d)
|
|
_systemctl daemon-reload || true
|
|
;;
|
|
esac
|
|
done
|
|
exit 0
|
|
fi
|
|
|
|
# Enable getty, remote-fs.target and timesyncd by default on new installs
|
|
if [ -z "$2" ]; then
|
|
systemctl enable getty@tty1.service || true
|
|
systemctl enable remote-fs.target || true
|
|
systemctl enable systemd-timesyncd.service || true
|
|
fi
|
|
|
|
# Enable ondemand by default on new installs
|
|
if [ -e /lib/systemd/system/ondemand.service ] && [ -z "$2" ]; then
|
|
systemctl enable ondemand.service || true
|
|
fi
|
|
|
|
# Enable systemd-pstore by default on new installs and upgrades, see #952767
|
|
if dpkg --compare-versions "$2" lt-nl "245.4-1~"; then
|
|
systemctl enable systemd-pstore.service || true
|
|
fi
|
|
|
|
# Do a one-time migration of the local time setting
|
|
if [ -z "$2" ]; then
|
|
if [ -f /etc/default/rcS ]; then
|
|
. /etc/default/rcS
|
|
fi
|
|
if [ "$UTC" = "no" ] && [ ! -e /etc/adjtime ]; then
|
|
printf "0.0 0 0.0\n0\nLOCAL\n" > /etc/adjtime
|
|
fi
|
|
fi
|
|
|
|
# Do a one-time migration of the TMPTIME setting
|
|
if [ -z "$2" ]; then
|
|
if [ -f /etc/default/rcS ]; then
|
|
. /etc/default/rcS
|
|
fi
|
|
if [ ! -e /etc/tmpfiles.d/tmp.conf ]; then
|
|
case "$TMPTIME" in
|
|
-*|infinite|infinity)
|
|
cat > /etc/tmpfiles.d/tmp.conf <<EOF
|
|
# Avoid clearing /tmp by shipping an empty /etc/tmpfiles.d/tmp.conf file
|
|
# which overrides /usr/lib/tmpfiles.d/tmp.conf.
|
|
# This file was automatically created because of local modifications in
|
|
# /etc/default/rcS where TMPTIME was set to infinite.
|
|
EOF
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
# Do a one-time migration of the RAMTMP setting
|
|
if [ -z "$2" ]; then
|
|
if [ -f /etc/default/rcS ]; then
|
|
. /etc/default/rcS
|
|
fi
|
|
if [ -f /etc/default/tmpfs ]; then
|
|
. /etc/default/tmpfs
|
|
fi
|
|
if [ "$RAMTMP" = "yes" ]; then
|
|
# systemctl enable will work even when systemd is not the active PID 1.
|
|
if [ ! -e /etc/systemd/system/tmp.mount ]; then
|
|
cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
|
|
systemctl enable tmp.mount || true
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Create /etc/machine-id
|
|
systemd-machine-id-setup
|
|
|
|
# Setup system users and groups
|
|
addgroup --quiet --system systemd-journal
|
|
|
|
adduser --quiet --system --group --no-create-home --home /run/systemd \
|
|
--gecos "systemd Time Synchronization" systemd-timesync
|
|
adduser --quiet --system --group --no-create-home --home /run/systemd \
|
|
--gecos "systemd Network Management" systemd-network
|
|
adduser --quiet --system --group --no-create-home --home /run/systemd \
|
|
--gecos "systemd Resolver" systemd-resolve
|
|
|
|
# Enable persistent journal, in auto-mode, by default on new installs and upgrades
|
|
if dpkg --compare-versions "$2" lt "244.1-2~"; then
|
|
mkdir -p /var/log/journal
|
|
# Applying ACLs requires a mounted /proc and systemd-tmpfiles will fail if /proc is not
|
|
# available. Skip systemd-tmpfiles in this case. This should be fine, as this typically
|
|
# means we are inside a chroot and systemd is not currently active. The permissions will
|
|
# be applied on the next boot.
|
|
if mountpoint -q /proc; then
|
|
systemd-tmpfiles --create --prefix /var/log/journal
|
|
fi
|
|
fi
|
|
|
|
# Initial update of the Message Catalogs database
|
|
_update_catalog
|
|
|
|
if [ -n "$2" ]; then
|
|
_systemctl daemon-reexec || true
|
|
# don't restart logind; this can be done again once this gets implemented:
|
|
# https://github.com/systemd/systemd/issues/1163
|
|
_systemctl try-restart systemd-networkd.service || true
|
|
_systemctl try-restart systemd-resolved.service || true
|
|
_systemctl try-restart systemd-timesyncd.service || true
|
|
_systemctl try-restart systemd-journald.service || true
|
|
fi
|
|
|
|
if dpkg --compare-versions "$2" lt-nl "235-3~"; then
|
|
# systemd-bus-proxyd got dropped before stretch, and never created any file
|
|
deluser --system systemd-bus-proxy || true
|
|
fi
|
|
|
|
if dpkg --compare-versions "$2" lt-nl "236-1~"; then
|
|
# Clean up old /var/lib/systemd/clock on upgrade.
|
|
# The clock file used by systemd-timesyncd is now stored in
|
|
# StateDirectory=systemd/timesync.
|
|
rm -f /var/lib/systemd/clock
|
|
fi
|
|
|
|
if dpkg --compare-versions "$2" lt-nl "239-12~"; then
|
|
# clean up bogus "nobody" group from #912525; ensure that it's a system group
|
|
if getent group nobody >/dev/null; then
|
|
delgroup --system nobody || true
|
|
fi
|
|
fi
|
|
|
|
#DEBHELPER#
|