systemd: Is it wrong?
Steve Dickson
SteveD at redhat.com
Sun Jul 10 03:31:35 UTC 2011
On 07/08/2011 10:57 AM, Michal Schmidt wrote:
> On 07/08/2011 03:57 PM, Steve Dickson wrote:
>> On 07/08/2011 08:23 AM, Lennart Poettering wrote:
>>> So, I'd suggest strongly not to try starting all services from a single
>>> file. There's a reason why we explicitly forbid having more than one
>>> ExecStart= in a unit file (except for Type=oneshot services).
>> Thank you for this explanation. It appears your definition of a
>> service might be a bit too simple for many subsystems. You seem
>> to think that on service will only start one system daemon, which
>> is not the case in the more complex subsystems.
>
> Each of the daemons can have its own unit file. We don't have to map the
> old initscripts to systemd units 1:1.
So one service can not have multiple daemons?
>
>>> Also, you should not spawn forking processes in ExecStartPre=, that's
>>> not what it is for. In fact I am pretty sure I will change systemd now
>>> to kill off all remaining processes after each ExecStartPre= command now
>>> that I am aware that people are misusing it like this.
>> If they are not for forking off process, what are the for?
>
> ExecStartPre= are for set up commands that do not leaved fork processes
> behind when they exit.
Meaning they are not for daemon processes, which does make sense...
>
>> It seems quite logical that one would use a number of ExecStartPre= commands
>> to do some set up and then use the ExecStart= to start the daemon.
>
> Well, that's exactly how they're used. Do some preparation in
> ExecStartPre and run the daemon in ExecStart.
>
>>> ExecStartPre= is executed strictly in order, and in the order they
>>> appear in the unit file.
>> True, but there is no synchronization. Meaning first process can
>> end after the second process, which think is a problem.
>
> This must be some misunderstanding, or you're seeing an unusual bug.
> It just cannot happen. The second ExecStartPre of the unit is run after
> the first one exits, not earlier.
> Or do you mean synchronization among several units? Then you want to
> specify ordering dependencies (Before, After).
Please take a look at https://bugzilla.redhat.com/show_bug.cgi?id=699040#c35
It sure looks like one process is being started for another one ends...
steved.
More information about the devel
mailing list