Undocument pause action, fix --nodeps and --ifstarted, #190045.
This commit is contained in:
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
28 Aug 2007; Roy Marples <uberlord@gentoo.org>:
|
28 Aug 2007; Roy Marples <uberlord@gentoo.org>:
|
||||||
|
|
||||||
|
Undocument pause action, fix --nodeps and --ifstarted, #190045.
|
||||||
Fix ksoftlevel handling, #190420.
|
Fix ksoftlevel handling, #190420.
|
||||||
|
|
||||||
26 Aug 2007; Mike Frysinger <vapier@gentoo.org>:
|
26 Aug 2007; Mike Frysinger <vapier@gentoo.org>:
|
||||||
|
@ -75,7 +75,8 @@ RC_FORCE_AUTO="no"
|
|||||||
#RC_ULIMIT="-u 30"
|
#RC_ULIMIT="-u 30"
|
||||||
|
|
||||||
# It's possible to define extra dependencies for services like so
|
# It's possible to define extra dependencies for services like so
|
||||||
|
#RC_CONFIG="/etc/foo"
|
||||||
#RC_NEED="openvpn"
|
#RC_NEED="openvpn"
|
||||||
#RC_USE="net.eth0"
|
#RC_USE="net.eth0"
|
||||||
|
#RC_AFTER="clock"
|
||||||
|
#RC_BEFORE="local"
|
||||||
|
@ -32,7 +32,7 @@ else
|
|||||||
NL=
|
NL=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
default_opts="describe start stop restart pause zap"
|
default_opts="describe start stop restart zap"
|
||||||
extra_opts="$(. "${myscript}" 2>/dev/null ; echo "${opts}")"
|
extra_opts="$(. "${myscript}" 2>/dev/null ; echo "${opts}")"
|
||||||
|
|
||||||
if [ "${BE_VERBOSE}" = "yes" ] ; then
|
if [ "${BE_VERBOSE}" = "yes" ] ; then
|
||||||
|
7
src/rc.c
7
src/rc.c
@ -977,8 +977,11 @@ int main (int argc, char **argv)
|
|||||||
strcmp (PREVLEVEL, "S") == 0 ||
|
strcmp (PREVLEVEL, "S") == 0 ||
|
||||||
strcmp (PREVLEVEL, "N") == 0))
|
strcmp (PREVLEVEL, "N") == 0))
|
||||||
{
|
{
|
||||||
if (get_ksoftlevel (ksoftbuffer, sizeof (ksoftbuffer)))
|
/* Try not to join boot and ksoftlevels together */
|
||||||
newlevel = ksoftbuffer;
|
if (! newlevel ||
|
||||||
|
strcmp (newlevel, getenv ("RC_BOOTLEVEL")) != 0)
|
||||||
|
if (get_ksoftlevel (ksoftbuffer, sizeof (ksoftbuffer)))
|
||||||
|
newlevel = ksoftbuffer;
|
||||||
} else if (! RUNLEVEL ||
|
} else if (! RUNLEVEL ||
|
||||||
(strcmp (RUNLEVEL, "1") != 0 &&
|
(strcmp (RUNLEVEL, "1") != 0 &&
|
||||||
strcmp (RUNLEVEL, "S") != 0 &&
|
strcmp (RUNLEVEL, "S") != 0 &&
|
||||||
|
@ -830,7 +830,7 @@ static void svc_stop (bool deps)
|
|||||||
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");
|
||||||
|
|
||||||
if (deps || ! rc_service_state (service, rc_service_wasinactive)) {
|
if (deps && ! rc_service_state (service, rc_service_wasinactive)) {
|
||||||
int depoptions = RC_DEP_TRACE;
|
int depoptions = RC_DEP_TRACE;
|
||||||
char *svc;
|
char *svc;
|
||||||
int i;
|
int i;
|
||||||
@ -977,18 +977,18 @@ static void svc_restart (bool deps)
|
|||||||
restart_services = NULL;
|
restart_services = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define getoptstring "dCDNqvh"
|
#include "_usage.h"
|
||||||
|
#define getoptstring "dDqsv" getoptstring_COMMON
|
||||||
static struct option longopts[] = {
|
static struct option longopts[] = {
|
||||||
{ "debug", 0, NULL, 'd'},
|
{ "debug", 0, NULL, 'd'},
|
||||||
{ "nocolor", 0, NULL, 'C'},
|
{ "ifstarted", 0, NULL, 's'},
|
||||||
{ "nocolour", 0, NULL, 'C'},
|
|
||||||
{ "nodeps", 0, NULL, 'D'},
|
{ "nodeps", 0, NULL, 'D'},
|
||||||
{ "quiet", 0, NULL, 'q'},
|
{ "quiet", 0, NULL, 'q'},
|
||||||
{ "verbose", 0, NULL, 'v'},
|
{ "verbose", 0, NULL, 'v'},
|
||||||
{ "help", 0, NULL, 'h'},
|
longopts_COMMON
|
||||||
{ NULL, 0, NULL, 0}
|
{ NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
// #include "_usage.c"
|
#include "_usage.c"
|
||||||
|
|
||||||
int runscript (int argc, char **argv)
|
int runscript (int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -1124,6 +1124,10 @@ int runscript (int argc, char **argv)
|
|||||||
execl (RCSCRIPT_HELP, RCSCRIPT_HELP, service, (char *) NULL);
|
execl (RCSCRIPT_HELP, RCSCRIPT_HELP, service, (char *) NULL);
|
||||||
eerrorx ("%s: failed to exec `" RCSCRIPT_HELP "': %s",
|
eerrorx ("%s: failed to exec `" RCSCRIPT_HELP "': %s",
|
||||||
applet, strerror (errno));
|
applet, strerror (errno));
|
||||||
|
case 's':
|
||||||
|
if (! rc_service_state (service, rc_service_started))
|
||||||
|
exit (EXIT_FAILURE);
|
||||||
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
setenv ("RC_NOCOLOR", "yes", 1);
|
setenv ("RC_NOCOLOR", "yes", 1);
|
||||||
break;
|
break;
|
||||||
@ -1137,7 +1141,7 @@ int runscript (int argc, char **argv)
|
|||||||
setenv ("RC_VERBOSE", "yes", 1);
|
setenv ("RC_VERBOSE", "yes", 1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
exit (EXIT_FAILURE);
|
usage (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save the IN_BACKGROUND env flag so it's ONLY passed to the service
|
/* Save the IN_BACKGROUND env flag so it's ONLY passed to the service
|
||||||
@ -1240,23 +1244,25 @@ int runscript (int argc, char **argv)
|
|||||||
} else if (strcmp (optarg, "start") == 0) {
|
} else if (strcmp (optarg, "start") == 0) {
|
||||||
svc_start (deps);
|
svc_start (deps);
|
||||||
} else if (strcmp (optarg, "stop") == 0) {
|
} else if (strcmp (optarg, "stop") == 0) {
|
||||||
if (in_background)
|
if (deps && in_background)
|
||||||
get_started_services ();
|
get_started_services ();
|
||||||
|
|
||||||
svc_stop (deps);
|
svc_stop (deps);
|
||||||
|
|
||||||
if (! in_background &&
|
if (deps) {
|
||||||
! rc_runlevel_stopping () &&
|
if (! in_background &&
|
||||||
rc_service_state (service, rc_service_stopped))
|
! rc_runlevel_stopping () &&
|
||||||
uncoldplug ();
|
rc_service_state (service, rc_service_stopped))
|
||||||
|
uncoldplug ();
|
||||||
|
|
||||||
if (in_background &&
|
if (in_background &&
|
||||||
rc_service_state (service, rc_service_inactive))
|
rc_service_state (service, rc_service_inactive))
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
STRLIST_FOREACH (restart_services, svc, j)
|
STRLIST_FOREACH (restart_services, svc, j)
|
||||||
if (rc_service_state (svc, rc_service_stopped))
|
if (rc_service_state (svc, rc_service_stopped))
|
||||||
rc_schedule_start_service (service, svc);
|
rc_schedule_start_service (service, svc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (strcmp (optarg, "zap") == 0) {
|
} else if (strcmp (optarg, "zap") == 0) {
|
||||||
einfo ("Manually resetting %s to stopped state", applet);
|
einfo ("Manually resetting %s to stopped state", applet);
|
||||||
|
Reference in New Issue
Block a user