[systemd-devel] Question about ExecStartPost= and startup process
Francis Moreau
francis.moro at gmail.com
Mon Jun 29 01:01:25 PDT 2015
On 06/28/2015 07:21 PM, Reindl Harald wrote:
>
>
> Am 28.06.2015 um 19:02 schrieb Francis Moreau:
>> On 06/28/2015 01:01 PM, Reindl Harald wrote:
>>>
>>> Am 28.06.2015 um 12:00 schrieb Francis Moreau:
>>>> Hello,
>>>>
>>>> For services with Type=Forking, I'm wondering if systemd proceeds
>>>> starting follow-up units when the command described by ExecStart= exits
>>>> or when the one described by ExecStartPost= exits ?
>>>>
>>>> I tried to read the source code to figure this out and it *seems* that
>>>> the latter is true but I'm really not sure.
>>>
>>> after ExecStartPost because anything else would make no sense, a unit is
>>> started when *all* if is st started - see the recent mariadb units on
>>> Fedora - if systemd would fire up deaemons which depend on mariadb the
>>> whole "wait-ready"-stuff won't work
>>
>> Ok, then the next naive question would be: "then what the purpose of the
>> ExecStartPost= directive since several commands can already be 'queued'
>> with the ExecStart= one?
>
> no, they can't, not for every service type
> "When Type is not oneshot, only one command may and must be given"
>
> read http://www.freedesktop.org/software/systemd/man/systemd.service.html
>
correct, I was actually confused by what I read from the source code:
service_sigchld_event() {
...
} else if (s->control_pid == pid) {
...
if (s->control_command &&
s->control_command->command_next &&
f == SERVICE_SUCCESS) {
service_run_next_control(s);
}
this looks like that forking type services could had several commands
queued in ExecStart directive...
Thanks.
More information about the systemd-devel
mailing list