Re: Init : someone could comment this ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Lennart Poettering <mzerqung@xxxxxxxxxxx> writes:

>> the major linux distributions.  By changing paradigm from forking to
>> non-forking daemon you can avoid all the complicated 'stop' code;
>> e.g. 'start' will be
>> 
>> | pid = fork();
>> | if (pid==0) { /* ... */ execve(...); }
>> 
>> and 'stop' be
>> 
>> | kill(pid, SIGTERM); /* wait for timeout/sigchld */ kill(pid, SIGKILL);
>
> This is not as simple as it might appear. Well behaving daemons don't
> detach before initialization is complete.

That has the problem that heuristics like pid-files must be used to
check/modify status of daemons.

Has the problem too that only one state of "complete" is possible.  But
e.g. for dhclient the state 'link was brought up' might be interesting.


> This fact is implicitly used by SysV init to make sure that daemons
> which depend on each other (like in "Avahi needs D-Bus")

meaning of "complete" depends on the program.  E.g. waiting for
completeness of udevd can be done by 'wait-for /dev/.udev'. It is an
implementation detail of the initsystem, whether to detect it with
external tools or by adding builtin functionality.  E.g. udevd init
might like like


--- system/udevd ---
need = scripts/udevd-wait

--- scripts/udevd-wait
need = daemon/udevd-daemon
exec = some-inotify-tool --wait-for-file /dev/.udev  # external tool
wait_for = /dev/.udev      # builtin

--- daemon/udevd-daemon
daemon = udevd




Enrico

-- 
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux