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

Navneet Sinha nnavneetsinha1001 at gmail.com
Fri Jan 22 07:52:51 PST 2016


I havn't tried on systemd 222. But, I think the problem is pretty easy to
reproduce and if the code around StandardInput option has not much changed,
then it should reproducible easily even on systemd222.


On Thu, Jan 21, 2016 at 10:37 PM, Chris Morgan <chmorgan at gmail.com> wrote:

>
> 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/20160122/53ffc10c/attachment.html>


More information about the systemd-devel mailing list