我已经在linux服务器上创build了我的第一个初始化脚本(如果添加了任何信息的话,ubuntu会检查更新,下载并在每个小时执行一次)。 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
下载的脚本启动如下:
script.sh
#!/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并显示“Hello I will …”消息,然后像这样微调的微调将[-] some_time_consuming_command的输出redirect到TTY4
然而,目前的行为是,在没有任何内容的情况下,Linux在黑屏(TTY7)中重新启动,当我切换到TTY1时,我看到:“你好,我将开始安装消息”。 我不明白这个行为。
任何人都可以指导我实现预期的行为?
编辑:读了一下之后,我发现/ dev / tty7通常是默认的,因为链接在/ dev / console中。 我对吗? 任何人都可以解释为什么TTY7是一般默认的? 我正在寻找显示init的输出到/ dev / console而不是/ dev / tty7?