Only start plugins once we have made an exclusive file

This commit is contained in:
Roy Marples 2007-11-19 13:46:09 +00:00
parent da153631e7
commit 2ef9c5c520

View File

@ -587,8 +587,6 @@ static void svc_start (bool deps)
const char *svcl[] = { applet, NULL }; const char *svcl[] = { applet, NULL };
rc_service_state_t state; rc_service_state_t state;
hook_out = RC_HOOK_SERVICE_START_OUT;
rc_plugin_run (RC_HOOK_SERVICE_START_IN, applet);
state = rc_service_state (service); state = rc_service_state (service);
if (rc_env_bool ("IN_HOTPLUG") || in_background) { if (rc_env_bool ("IN_HOTPLUG") || in_background) {
@ -600,10 +598,6 @@ static void svc_start (bool deps)
if (state & RC_SERVICE_STARTED) { if (state & RC_SERVICE_STARTED) {
ewarn ("WARNING: %s has already been started", applet); ewarn ("WARNING: %s has already been started", applet);
if (hook_out) {
hook_out = 0;
rc_plugin_run (hook_out)
}
return; return;
} else if (state & RC_SERVICE_STARTING) } else if (state & RC_SERVICE_STARTING)
ewarnx ("WARNING: %s is already starting", applet); ewarnx ("WARNING: %s is already starting", applet);
@ -617,6 +611,9 @@ static void svc_start (bool deps)
make_exclusive (service); make_exclusive (service);
hook_out = RC_HOOK_SERVICE_START_OUT;
rc_plugin_run (RC_HOOK_SERVICE_START_IN, applet);
if (rc_env_bool ("RC_DEPEND_STRICT")) if (rc_env_bool ("RC_DEPEND_STRICT"))
depoptions |= RC_DEP_STRICT; depoptions |= RC_DEP_STRICT;
@ -803,9 +800,6 @@ static void svc_stop (bool deps)
rc_service_state_t state = rc_service_state (service); rc_service_state_t state = rc_service_state (service);
hook_out = RC_HOOK_SERVICE_STOP_OUT;
rc_plugin_run (RC_HOOK_SERVICE_STOP_IN, applet);
if (rc_runlevel_stopping () && if (rc_runlevel_stopping () &&
state & RC_SERVICE_FAILED) state & RC_SERVICE_FAILED)
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
@ -817,10 +811,6 @@ static void svc_stop (bool deps)
if (state & RC_SERVICE_STOPPED) { if (state & RC_SERVICE_STOPPED) {
ewarn ("WARNING: %s is already stopped", applet); ewarn ("WARNING: %s is already stopped", applet);
if (hook_out) {
hook_out = 0;
rc_plugin_run (hook_out)
}
return; return;
} else if (state & RC_SERVICE_STOPPING) } else if (state & RC_SERVICE_STOPPING)
ewarnx ("WARNING: %s is already stopping", applet); ewarnx ("WARNING: %s is already stopping", applet);
@ -830,6 +820,9 @@ static void svc_stop (bool deps)
make_exclusive (service); make_exclusive (service);
hook_out = RC_HOOK_SERVICE_STOP_OUT;
rc_plugin_run (RC_HOOK_SERVICE_STOP_IN, applet);
if (! rc_runlevel_stopping () && if (! rc_runlevel_stopping () &&
rc_service_in_runlevel (service, RC_LEVEL_BOOT)) rc_service_in_runlevel (service, RC_LEVEL_BOOT))
ewarn ("WARNING: you are stopping a boot service"); ewarn ("WARNING: you are stopping a boot service");