在systemd启动期间访问stdin

Mar*_* C. 9 bash boot fedora sh systemd

我有一个脚本,它在启动计算机时请求用户输入数字.计算机正在运行Fedora 16.它在Fedora 13上使用了工作,但在升级之后

read INTEGER
Run Code Online (Sandbox Code Playgroud)

立即返回,不会捕获任何用户输入.我试过了

read INTEGER
wait $!
Run Code Online (Sandbox Code Playgroud)

但(可预见地),这也不起作用.该脚本从systemd服务文件运行(请参阅下面的注释).它必须以root身份运行,并且必须在用户登录之前启动.它当前将bash称为其解释器,但是通过一些努力,可以更改它.任何人都可以帮助将此脚本恢复正常吗?

额外功劳:在F13中,它用于暂停用户输入的启动(根据需要),但输入未显示为用户键入的内容.有没有办法添加此功能?

BRP*_*ock 1

在正常启动期间,键盘连接到普利茅斯(我相信)

\n\n

在 Fedora 上,我相信您想要类似的东西:

\n\n
 plymouth ask-question --prompt="Pick a number between 0 and \xe2\x88\x9e" \\\n     --command="/usr/bin/numberguesser"\n
Run Code Online (Sandbox Code Playgroud)\n\n

可能与

\n\n
     --dont-pause-progress\n
Run Code Online (Sandbox Code Playgroud)\n\n

应该显示普利茅斯提示屏幕,与加密文件系统提示输入密码的方式没有什么不同。

\n\n

请注意,这只/usr/bin/numberguesser会将输入的字符串通过管道输入到其标准输入中。

\n\n

未经测试,抱歉:-(

\n