如何检测getty respawn?

时间:2012-07-28 09:21:19

标签: linux init busybox

我正在使用BusyBox,但我认为我的问题是通用的。这是我的inittab文件中的一条tty行的示例。

tty1::respawn:/sbin/getty -n -l /usr/bin/loginwrapper 38400 tty1

我想知道是否有办法检测到getty进程已经重生。

因此,例如在我的个人资料脚本中,我希望能够在第一次生成getty时运行命令。

谢谢!

1 个答案:

答案 0 :(得分:2)

我会创建一个包装器脚本,您可以将其放在inittab中,替换实际的getty命令。

在该脚本中,您可以完成工作,最后您可以启动getty

因此,不是原始的inittab行,你会得到这样的东西:

tty1::respawn:/usr/local/sbin/myscript 38400 tty1

在那个剧本中:

#!bin/sh

LAST_BOOT=`who -b`
LAST_BOOT_FILE="/tmp/place/to/put/your/flags/$2"
if grep -q "$LAST_BOOT" $LAST_BOOT_FILE 2> /dev/null; then
    echo "Respawn"
else
    echo "$LAST_BOOT" > $LAST_BOOT_FILE
    echo "First start"
fi

exec /sbin/getty -n -l /usr/bin/loginwrapper $*

更新

如果你有ramdisk,你可以在其上创建一个文件并检查它是否存在。