Just one last question.
Does systemd notifies other services based on this notification ?

I have 2 service files, application in one service file sends notification
using sd_notify does systemd starts another service file.

one.service
========
*[Unit]*
*Description=Sd_notify example*
*Before=second.service*

*[Service]*
*Type=notify*
*ExecStart=/etc/Myapp*

*[Install]*
*WantedBy=multi-user.target*

second.service
==========
*[Unit]*
*Description=Second sd_notify example*
*Requires=**one.service*
*After=one.service*

*[Service]*
*ExecStart=/etc/SecondApp*

*[Install]*
*WantedBy=multi-user.target*



*Regards,*
*Raghavendra H R*

--
Regards,

Raghavendra. H. R
(Raghu)

On Tue, Nov 8, 2016 at 7:14 PM, Alessandro Puccetti <alessan...@kinvolk.io>
wrote:

>
>
> On Tue, Nov 8, 2016 at 2:28 PM, Raghavendra. H. R <raghuh...@gmail.com>
> wrote:
>
>> Hi Tomasz,
>>
>> Thanks for pointing out the mistake. I actually missed the line
>> "Type=notify" in the mail.
>> I found the journalctl logs and from that I can make out the real problem
>> is not about NOTIFY_SOCKET. It is about child process in my application
>> *Myapp.*
>>
>> Below given is my Service file.
>>
>> *[Unit]*
>> *Description=Sd_notify example*
>>
>> *[Service]*
>> *Type=notify*
>> *ExecStart=/etc/Myapp*
>>
>> *[Install]*
>> *WantedBy=multi-user.target*
>>
>> And in Myapp code my application is using fork() to create a child
>> process. Because of which notification is not working correctly.
>>
>> This is error log
>>
>>
>> *localhost systemd[1]: sd_example.service: Got notification message from
>> PID 1270, but reception only permitted for main PID 1106*
>>
>> Is there any way from which we can force sd_notify to make use of Parent
>> PID instead of child process. My sd_notify is after the fork() call, so I
>> doubt sd_notify is called from child process.
>>
>> MyApp code snippet
>>
>>         *int count = 0;*
>> *        cpid = fork();*
>>
>> *        if (cpid < 0)*
>> *        {*
>> *            printf("vfork failed.");*
>> *        }*
>>
>> *        if (cpid == 0)*
>> *        {*
>> *            count++;*
>> *            if(count == 1)*
>> * {*
>>
> This notificaiton is done by the child process, but notificaitons are
> accepted by default only form the main process. Read doc aobut
> "NotifyAccess=". https://www.freedesktop.org/software/
> systemd/man/systemd.service.html#NotifyAccess=
>
>> * ret = sd_notify(0, "READY=1");*
>> * printf("Return value = %d \n");*
>> * }*
>> * }*
>>
>>
>> Regards,
>> Raghavendra H R
>>
>> --
>> Regards,
>>
>> Raghavendra. H. R
>> (Raghu)
>>
>> On Tue, Nov 8, 2016 at 5:15 PM, Tomasz Torcz <to...@pipebreaker.pl>
>> wrote:
>>
>>> On Tue, Nov 08, 2016 at 05:01:59PM +0530, Raghavendra. H. R wrote:
>>> > Hi All,
>>> >
>>> > I'm a newbie in Systemd init system and I'm exploring sd_notify which
>>> is
>>> > basically used for notification purpose in SystemD.
>>>
>>>   It is written “systemd” (all lowercase).
>>>
>>> > I have created one unit file which is of type "notify" and in my
>>> > application I have written sd_notify(0, "READY=1"); from which SystemD
>>> can
>>> > be notified that my process in totally up and running.
>>> >
>>> > Below given is my Service file.
>>> >
>>> > *[Unit]*
>>> > *Description=Sd_notify example*
>>> >
>>> > *[Service]*
>>> > *ExecStart=/etc/Myapp*
>>>
>>>
>>>   This is not 'unit of type notify'. This is unit of type 'simple'.
>>> Please read "man systemd.service" and paragraph Type= and choose
>>> correctly.
>>>
>>>
>>> > Need help in understanding what value should be set in the environment
>>> > varaible NOTIFY_SOCKET.
>>> > But there's no much information/documentation available on
>>> NOTIFY_SOCKET.
>>>
>>>   NOTIFY_SOCKET is filled-in by systemd and it is available when you
>>> correctly defined unit type.  If you want to check it's value, you can
>>> user getenv() inside you program and print the value.
>>>   I think amount of documentation about NOTIFY_SOCKET is enough, if
>>> you think there's something specific missing, let us know.
>>>
>>>
>>> --
>>> Tomasz Torcz               "Never underestimate the bandwidth of a
>>> station
>>> xmpp: zdzich...@chrome.pl    wagon filled with backup tapes." -- Jim
>>> Gray
>>>
>>> _______________________________________________
>>> systemd-devel mailing list
>>> systemd-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
>>>
>>
>>
>> _______________________________________________
>> systemd-devel mailing list
>> systemd-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
>>
>>
>
>
> --
>
> Alessandro Puccetti
>
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to