如何将初始化输出显示到 tty7(或主 tty)

如何将初始化输出显示到 tty7(或主 tty)

我在 Linux 服务器(如果添加任何信息,则为 ubuntu)中创建了我的第一个 init 脚本,该脚本每小时检查更新、下载并执行一次。init 文件如下:

/etc/init/updater.conf

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output

respawn

script

    chvt 6
    chvt 7

    while true; do

        # code to check update ...

        if [ should_update ]; then

            # Download the script

            chmod +x /path/to/script.sh
            bash /path/to/script.sh
            rm /path/to/script.sh
        fi

        echo 'Rechecking for updates in 1h...'
        sleep 1h
    done

end script

下载的脚本启动如下:

脚本

#!/bin/bash

clear

exec > >(tee -i /var/log/update.log)
exec 2>&1

ScriptLoc=$(readlink -f "$0")

# check for root privilege
if [ "$(id -u)" != "0" ]; then
   echo " This script must be run as root" 1>&2
   echo
   exit 1
fi

LOG_OUTPUT=/dev/tty4

(some_time_consuming_command 2>&1 > $LOG_OUTPUT) & spinner &!

预期的行为是,在 Linux 安装完成后,按下的按钮将添加到已完成的updater.conf按钮/etc/init,然后 Linux 在安装后重新启动并显示“您好,我将...”消息,然后像这样的微调器调整,[-]同时将的输出重定向some_time_consuming_command到 TTY4

但是,目前的行为是 Linux 重新启动时出现黑屏(TTY7),其中没有任何内容,当我切换到 TTY1 时,我看到:“您好,我将开始安装消息”。我不明白这种行为。

有人可以指导我实现预期的行为吗?

编辑:阅读了一点后,我发现 /dev/tty7 通常是默认设置,因为它链接了 /dev/console。我说得对吗?有人能解释一下为什么 TTY7 通常是默认设置吗?我是否希望将 init 输出显示到 /dev/console 而不是 /dev/tty7?

相关内容