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