1

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

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

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

因此,例如在我的配置文件脚本中,我希望能够仅在 getty 第一次生成时运行命令。

谢谢!

4

1 回答 1

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,你可以在上面创建一个文件并检查它作为标志的存在。

于 2012-07-28T09:32:18.537 回答