我正在使用BusyBox,但我认为我的问题是通用的。这是我的inittab文件中的一条tty行的示例。
tty1::respawn:/sbin/getty -n -l /usr/bin/loginwrapper 38400 tty1
我想知道是否有办法检测到getty进程已经重生。
因此,例如在我的个人资料脚本中,我希望能够在第一次生成getty时运行命令。
谢谢!
答案 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,你可以在其上创建一个文件并检查它是否存在。