I have a script which solicits a numeric input from the user while booting the computer. The computer is running Fedora 16. It used work, on Fedora 13, but after the upgrade

read INTEGER

returns immediately, without catching any user input. I tried

read INTEGER
wait $!

but (predictably) that too doesn't work. The script is run from a systemd service file (see comments below). It must be run as root, and must started before the user logs in. It currently calls bash as its interpreter, but with some effort, that could be changed. Can anyone help return this script to normal?

Extra credit: In F13, it used to halt booting for user input (as desired) but the input was not displayed as the user typed. Is there a way to add this functionality?

Alternatively, I could cue a graphical interface (e.g. from tkinter/Python) to ask for INTEGER after graphical.target loads. Any thoughts on how I might do this? Is it straightforward to load things with windows before the desktop loads?

link|improve this question
feedback

1 Answer

Use the systemd-ask-password command and systemd will take care of prompting the user for input in an appropriate manner, either using a text prompt or a graphical prompt.

link|improve this answer
That's an excellent suggestion. Unfortunately, it still doesn't interrupt startup, so I still don't get input. I found StandardInput in the systemd.unit man page, which I think would also solve the stdin issue, if not the interruption-of-startup issue. I tried setting StandardInput=tty-force but it didn't help with the start-up interruption issue. I know I'm not getting instant EOF (as I was before) because the program would flag it. – Mark C. Jan 23 at 22:35
It certainly should work at boot time - there are agents for both the text mode console and the plymouth graphical console. Trying to access the terminal directly is just not going to work. – TomH Jan 23 at 22:46
Hm. It's not using the Plymouth agent nor the text-mode agent; instead, when I open Gnome terminal after boot, it pings me every so often asking for me to log in as root and use systemd-tty-ask-password-agent. – Mark C. Jan 24 at 8:49
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.