[systemd-devel] if StandardInput is set, echo messages from script doesn't show up on terminal.

Chris Morgan chmorgan at gmail.com
Thu Jan 21 09:07:51 PST 2016


On Thu, Jan 21, 2016 at 11:59 AM, Navneet Sinha <nnavneetsinha1001 at gmail.com
> wrote:

> Gentle Reminder mail for looking into the issue.
>
> Thanks
> Navneet
>
> On Mon, Jan 18, 2016 at 11:05 PM, Navneet Sinha <
> nnavneetsinha1001 at gmail.com> wrote:
>
>> Any updates ?
>>
>> On Fri, Jan 15, 2016 at 11:16 AM, Navneet Sinha <
>> nnavneetsinha1001 at gmail.com> wrote:
>>
>>> 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
>>>
>>
>>
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
>

systemd 201 seems pretty old (f23 is on 222). Does this reproduce on a
newer version?

Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20160121/1aa0d6ec/attachment-0001.html>


More information about the systemd-devel mailing list