hi.. On 06/20/11 21:36, Lennart Poettering wrote: > > This very much sounds as if the service does not wait in the top-level > process that the daemon process is properly forked and finished writing > the PID file. systemd tries to read the PID file immediately after the > top-level process exits which means that systemd will race against the > daemon there. > > So my guess is that ypbind-mt does something like this: > > fork() --> fork() --> write_pid_file() > exit() exit() run_main_loop()
thats it.. > but it should be doing: > > fork() ------------> fork() --> write_pid_file() > wait_for_notify() exit() notify_grandparent() > exit() run_main_loop() > ... the run-in-foreground patch works fine.. and as far as i understood Type=forking is just good for compatibility and daemons should not fork away anymore!? > i.e. the main process should not exit before it hasn't ensure that the > PID file of the daemon process has been written. Otherwise any usage of > the PID file is necessarily racy. but it doesn't work without setting PIDFile= either - so the PID itself is racy, too. >> BTW a patch for ypbind-mt adding a -foreground commandline switch will >> be sent to the maintainers soon.. > > Nice, this is good to hear, Type=simple is definitely the ncier solution. may be it could be mentioned in the manpage where Type=forking is explained that there could be a race if the daemon is forking twice or if it behaves odd in another way.. - GuessMainPID= already states that it may not work reliable.. there was nothing written to the logs that pointed in that direction and increasing verbosity changed everything 8) tricky situation and i think systemd should not be blamed for this.. ever 8) bye marius.. -- Dipl.-Inf. Marius Tolzmann <[email protected]> ----------------------------------.------------------------------ MPI f. molekulare Genetik | Ihnestrasse 63-73, D-14195 Berlin | ==> MarIuX GNU/Linux <== Phone: +49 (0)30 8413 1709 | ----------------------------------^------------------------------ God put me on earth to accomplish a certain number of things. Right now I am so far behind.. ..I will never die. <by calvin from calvin&hobbes ;)> _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
