Enrico Scholz wrote:
Till Maas <opensource@xxxxxxxxx> writes:
| kill(pid, SIGTERM); /* wait for timeout/sigchld */ kill(pid, SIGKILL);
Imho there is some code missing, that the pid really belongs to the
service,
no; as already written, modern initsystems use non-forking daemons where
such checks are not needed anymore.
It is up to the designer of the app whether it forks or not, and while
there may be an argument that one way is better or worse, the init
maintainers cannot guarantee the behavior of that which their system
must start.
e.g. when the service died/crashed and the pid file still exists
pidfiles are ancient hacks not required by modern initsystems anymore.
, a wrong process can be killed here. Also I guess it would be better
to first try to SIGTERM the all services that should be terminated,
then wait, and then send the SIGKILL instead of waiting for each
process independently.
stop sequence happens in reverted order and can be done in parallel, but
there must by synchronization points (e.g. 'httpd' + 'ftpd' -> sync ->
'udhcpc' -> sync -> 'udevd')
Enrico
--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list