dev*_*ull 1 startup centos upstart
我将如何在 CentOS 6 中用自定义脚本替换 TTY。CentOS 6 使用 upstart 而不是标准的 SysV init 脚本,所以我很难弄清楚它是如何工作的。
通常(在 SysV init 脚本中),我会编辑 /etc/inittab 并用我的脚本替换 mingetty 行之一,如下所示:
1:2345:respawn:/root/myscript tty1
Run Code Online (Sandbox Code Playgroud)
但是,对于 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
Run Code Online (Sandbox Code Playgroud)
然后我创建了/etc/init/myjob.conf:
stop on runlevel [012456]
respawn
exec /usr/bin/openvt -c 1 -f -e /root/myscript
Run Code Online (Sandbox Code Playgroud)
这最终会在 tty1 上启动 /root/myscript,而不是 mingetty。我不确定这是否是最简单的方法,但效果很好。
归档时间: |
|
查看次数: |
3929 次 |
最近记录: |