[systemd-devel] if StandardInput is set, echo messages from script doesn't show up on terminal.
Navneet Sinha
nnavneetsinha1001 at gmail.com
Thu Jan 14 21:46:53 PST 2016
I have systemd service, say foo.service.
*Service file*
[Unit]
Description=Foo agent.
After=fooAfter.service
Before=fooBefore1.service
Before=fooBefore2.service
[Service]
# During boot the foo.sh script reads input from /dev/console. If the
user
# hits <ESC>, it will skip waiting for foo and foo2 to startup.
Type=oneshot
StandardInput=tty
StandardOutput=tty
ExecStart=/usr/bin/foo.sh start
RemainAfterExit=True
ExecStop=/usr/bin/foo.sh stop
[Install]
WantedBy=multi-user.target
*start function from foo.sh*
start() {
echo -n "This is a fake systemd service"
success
echo
exit 0
}
During boot up this service file is being executed
Following is what I am seeing :
"2016-01-14 20:24:39.693603 11760 pexpect 2 c:abc3#1 received:*
'This is a fake s'*
Instead I expected *"This is a fake systemd service"* and in next line *"[
OK ]"*
*systemd version *is : systemd-201-2.fc18.9.i686
*systemd configuration* for the system, I am using is :
systemd.default_standard_output=tty
systemd.show_status=0
On further debugging, what I see if I add just a "sleep 1" after echo.
Missing echo Messages starts showing up during boot up OR if I remove
"StandardInput" attribute from the service file.
So, the issue I am suspecting has something to do with this process
becoming the controlling process for the terminal( as StandardInput is set
).
*start function from foo.sh after adding "sleep 1"*
start() {
echo -n "This is a fake systemd service"
success
echo
*sleep 1*
exit 0
}
Can somebody explain this and also suggest a better solution, if there is.
Thanks
Navneet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20160115/1a01b910/attachment-0001.html>
More information about the systemd-devel
mailing list