#!/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