You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qubes-installer-qubes-os/anaconda/data/systemd/anaconda-generator

45 lines
1.4 KiB

#!/bin/bash
# anaconda-generator: generate services needed for anaconda operation
# only run in the Anaconda installation environment
ANACONDA_TARGET="/lib/systemd/system/anaconda.target"
CURRENT_DEFAULT_TARGET=$(readlink /etc/systemd/system/default.target)
if [ "$ANACONDA_TARGET" != "$CURRENT_DEFAULT_TARGET" ]; then
exit 0
fi
# set up dirs
systemd_dir=/lib/systemd/system
target_dir=$systemd_dir/anaconda.target.wants
mkdir -p $target_dir
# create symlink anaconda.target.wants/SERVICE@TTY.service
service_on_tty() {
local service="$1" tty="$2"
local service_instance="${service/@.service/@$tty.service}"
ln -sf $systemd_dir/$service $target_dir/$service_instance
}
# find the real tty for /dev/console
tty="console"
while [ -f /sys/class/tty/$tty/active ]; do
tty=$(< /sys/class/tty/$tty/active)
tty=${tty##* } # last item in the list
done
consoletty="$tty"
# put anaconda's tmux session on the console
service_on_tty anaconda-tmux@.service $consoletty
# put a shell on the first virtualization console we find
for tty in hvc0 hvc1 xvc0 hvsi0 hvsi1 hvsi2; do
[ "$tty" = "$consoletty" ] && continue
if [ -d /sys/class/tty/$tty ]; then
service_on_tty anaconda-shell@.service $tty
fi
done
ln -sf $systemd_dir/anaconda-nm-config.service $target_dir/anaconda-nm-config.service
ln -sf $systemd_dir/anaconda-pre.service $target_dir/anaconda-pre.service