Centos

在 CentOS 6 中用腳本替換 TTY

  • October 20, 2011

我將如何在 CentOS 6 中用自定義腳本替換 TTY。CentOS 6 使用 upstart 而不是標準的 SysV 初始化腳本,所以我很難弄清楚它是如何工作的。

通常(在 SysV 初始化腳本中),我會編輯 /etc/inittab 並用我的腳本替換其中一個 mingetty 行,如下所示:

1:2345:respawn:/root/myscript tty1

但是,對於 Upstart,此文件沒有相關行,因此我不確定如何完成此操作。

我已經想通了。

首先,我修改了 /etc/init/start-ttys.conf 以將其用於腳本部分:

script
   . /etc/sysconfig/init
   for tty in $(echo $ACTIVE_CONSOLES) ; do
         [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
           if [ "$tty" == "/dev/tty1" ]; then
                   initctl start myjob TTY=$tty
                   continue
           fi
           initctl start tty TTY=$tty
   done
end script

然後我創建了/etc/init/myjob.conf:

stop on runlevel [012456]

respawn
exec /usr/bin/openvt -c 1 -f -e /root/myscript

這最終會在 tty1 上啟動 /root/myscript,而不是 mingetty。我不確定這是否是最簡單的方法,但效果很好。

引用自:https://serverfault.com/questions/323289