[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