On Sun, Jun 14, 2015 at 03:50:06PM +0200, Laurent Bercot wrote:
> On 14/06/2015 15:29, Nikolaus Klepp wrote:
> >And I thought the historic solution would be to give your web printing 
> >service an id higher than cups, eg.:
> >
> >/etc/rc*/S04cups
> >/etc/rc*/S99awsomewebprinter
> >
> >Together with the nightmare from unix museum (aka fork when ready) it simply 
> >works.
> 
>  No, it doesn't.
>  The S04cups script will start cups, spawn the process, but exit before the
> service is ready; your sysv-rc mechanism will only see S04cups die, think
> it's okay, and start S99awsomewebprinter. There is a race condition and
> the web printing service may be started too early.
>  Unless cups implements readiness notification, and S04cups waits for this
> notification before returning. Then S99awsomewebprinter will only be
> started once the cups service is *actually* running.
> 
>  It's not a theoretical problem. It's a very real one. Some daemons take
> ages to get ready after they've been started, their needed prep work is
> longer than it takes for a shell script to exit and another one to be
> spawned, and the race condition is real.


I am sorry but you simply don't get rid of race conditions by
signalling that the daemon is ready. If the daemon dies or hangs for
whatever reason, you will still have a problem, since you thought the
service was up and running while it is not any more....



-- 
[ Enzo Nicosia aka KatolaZ --- GLUG Catania -- Freaknet Medialab ]
[ me [at] katolaz.homeunix.net -- http://katolaz.homeunix.net -- ]
[ GNU/Linux User:#325780/ICQ UIN: #258332181/GPG key ID 0B5F062F ]
[ Fingerprint: 8E59 D6AA 445E FDB4 A153 3D5A 5F20 B3AE 0B5F 062F ]
_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to