On 05/11/14 18:31, Michael Biebl wrote:
> 
> Since flashproxy-facilitator uses "invoke-rc.d flashproxy-facilitator
> start" in postinst, the state of the service is "active (exited)" at
> this point.
> 
> The default for sysv init scripts is RemainAfterExit=true [0], so even
> if there are no running processes, the service is marked as active.
> This is because systemd doesn't know, if the sysv init script is
> supposed to start a long running process or a just some one shot commands.
> 
> [..]
> 
> If the service is already considered active, a start will be no-op.
> 

I think this is the bug on systemd's part. I get that "start is a no-op" might 
make sense for actual systemd services, but how does it make sense for the 
sysvinit wrapper? In a plain sysvinit setup (that does not have systemd 
interfering with things) "start" is run unconditionally if I say "service x 
start". What is the problem with doing things this way?

> 
> systemd doesn't clobber any variables. The problem here is, that the
> service is considered active, even though it isn't really, since it has
> been neutered via the ENABLE flag. Therefore, such ENABLE or RUN_DAEMON
> flags in /etc/default/ should be avoided.
> 

Er, I wrote a "sysvinit" script, not a systemd script. As far as I know, there 
is no sysvinit standard that forbids ENABLE or RUN_DAEMON, even if it is 
"discouraged".

If systemd wants to kludge wrappers for sysvinit, it's the *responsibility of 
systemd* to not break existing software.

> A few recommendations
> - Avoid such ENABLE flags in /etc/default/<service>
> - Ship a native .service file to explicitly tell systemd about the type
> of service [1] so it can track it more reliably.
> - Iif you want to stick with sysv init scripts but tell systemd that the
> sysv init script runs a long running process, add a
> # pidfile: /var/run/foo.pid
> pseudo header.
> 

I can do these things, and thanks for the explanation - but this issue is still 
systemd's fault, that should be fixed ultimately on the systemd side.

X

-- 
GPG: 4096R/1318EFAC5FBBDBCE
git://github.com/infinity0/pubkeys.git

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to