Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 190045
Collapse All | Expand All

(-)src/runscript.c (-19 / +25 lines)
Lines 830-836 Link Here
830
		rc_service_in_runlevel (service, RC_LEVEL_BOOT))
830
		rc_service_in_runlevel (service, RC_LEVEL_BOOT))
831
		ewarn ("WARNING: you are stopping a boot service");
831
		ewarn ("WARNING: you are stopping a boot service");
832
832
833
	if (deps || ! rc_service_state (service, rc_service_wasinactive)) {
833
	if (deps && ! rc_service_state (service, rc_service_wasinactive)) {
834
		int depoptions = RC_DEP_TRACE;
834
		int depoptions = RC_DEP_TRACE;
835
		char *svc;
835
		char *svc;
836
		int i;
836
		int i;
Lines 977-994 Link Here
977
	restart_services = NULL;
977
	restart_services = NULL;
978
}
978
}
979
979
980
#define getoptstring "dCDNqvh"
980
#include "_usage.h"
981
#define getoptstring "dDqsv" getoptstring_COMMON 
981
static struct option longopts[] = {
982
static struct option longopts[] = {
982
	{ "debug",      0, NULL, 'd'},
983
	{ "debug",      0, NULL, 'd'},
983
	{ "nocolor",    0, NULL, 'C'},
984
	{ "ifstarted",  0, NULL, 's'},
984
	{ "nocolour",   0, NULL, 'C'},
985
	{ "nodeps",     0, NULL, 'D'},
985
	{ "nodeps",     0, NULL, 'D'},
986
	{ "quiet",      0, NULL, 'q'},
986
	{ "quiet",      0, NULL, 'q'},
987
	{ "verbose",    0, NULL, 'v'},
987
	{ "verbose",    0, NULL, 'v'},
988
	{ "help",       0, NULL, 'h'},
988
	longopts_COMMON
989
	{ NULL,         0, NULL, 0}
989
	{ NULL,         0, NULL, 0}
990
};
990
};
991
// #include "_usage.c"
991
#include "_usage.c"
992
992
993
int runscript (int argc, char **argv)
993
int runscript (int argc, char **argv)
994
{
994
{
Lines 1124-1129 Link Here
1124
				execl (RCSCRIPT_HELP, RCSCRIPT_HELP, service, (char *) NULL);
1124
				execl (RCSCRIPT_HELP, RCSCRIPT_HELP, service, (char *) NULL);
1125
				eerrorx ("%s: failed to exec `" RCSCRIPT_HELP "': %s",
1125
				eerrorx ("%s: failed to exec `" RCSCRIPT_HELP "': %s",
1126
						 applet, strerror (errno));
1126
						 applet, strerror (errno));
1127
			case 's':
1128
				if (! rc_service_state (service, rc_service_started))
1129
					exit (EXIT_FAILURE);
1130
				break;
1127
			case 'C':
1131
			case 'C':
1128
				setenv ("RC_NOCOLOR", "yes", 1);
1132
				setenv ("RC_NOCOLOR", "yes", 1);
1129
				break;
1133
				break;
Lines 1137-1143 Link Here
1137
				setenv ("RC_VERBOSE", "yes", 1);
1141
				setenv ("RC_VERBOSE", "yes", 1);
1138
				break;
1142
				break;
1139
			default:
1143
			default:
1140
				exit (EXIT_FAILURE);
1144
				usage (EXIT_FAILURE);
1141
		}
1145
		}
1142
1146
1143
	/* Save the IN_BACKGROUND env flag so it's ONLY passed to the service
1147
	/* Save the IN_BACKGROUND env flag so it's ONLY passed to the service
Lines 1240-1262 Link Here
1240
			} else if (strcmp (optarg, "start") == 0) {
1244
			} else if (strcmp (optarg, "start") == 0) {
1241
				svc_start (deps);
1245
				svc_start (deps);
1242
			} else if (strcmp (optarg, "stop") == 0) {
1246
			} else if (strcmp (optarg, "stop") == 0) {
1243
				if (in_background)
1247
				if (deps && in_background)
1244
					get_started_services ();
1248
					get_started_services ();
1245
1249
1246
				svc_stop (deps);
1250
				svc_stop (deps);
1247
1251
1248
				if (! in_background &&
1252
				if (deps) {
1249
					! rc_runlevel_stopping () &&
1253
					if (! in_background &&
1250
					rc_service_state (service, rc_service_stopped))
1254
						! rc_runlevel_stopping () &&
1251
					uncoldplug ();
1255
						rc_service_state (service, rc_service_stopped))
1256
						uncoldplug ();
1252
1257
1253
				if (in_background &&
1258
					if (in_background &&
1254
					rc_service_state (service, rc_service_inactive))
1259
						rc_service_state (service, rc_service_inactive))
1255
				{
1260
					{
1256
					int j;
1261
						int j;
1257
					STRLIST_FOREACH (restart_services, svc, j)
1262
						STRLIST_FOREACH (restart_services, svc, j)
1258
						if (rc_service_state (svc, rc_service_stopped))
1263
							if (rc_service_state (svc, rc_service_stopped))
1259
							rc_schedule_start_service (service, svc);
1264
								rc_schedule_start_service (service, svc);
1265
					}
1260
				}
1266
				}
1261
			} else if (strcmp (optarg, "zap") == 0) {
1267
			} else if (strcmp (optarg, "zap") == 0) {
1262
				einfo ("Manually resetting %s to stopped state", applet);
1268
				einfo ("Manually resetting %s to stopped state", applet);
(-)conf.d/rc (-2 / +3 lines)
Lines 75-81 Link Here
75
#RC_ULIMIT="-u 30"
75
#RC_ULIMIT="-u 30"
76
76
77
# It's possible to define extra dependencies for services like so
77
# It's possible to define extra dependencies for services like so
78
#RC_CONFIG="/etc/foo"
78
#RC_NEED="openvpn"
79
#RC_NEED="openvpn"
79
#RC_USE="net.eth0"
80
#RC_USE="net.eth0"
80
81
#RC_AFTER="clock"
81
82
#RC_BEFORE="local"
(-)sh/rc-help.sh (-1 / +1 lines)
Lines 32-38 Link Here
32
	NL=
32
	NL=
33
fi
33
fi
34
34
35
default_opts="describe start stop restart pause zap"
35
default_opts="describe start stop restart zap"
36
extra_opts="$(. "${myscript}" 2>/dev/null ; echo "${opts}")"
36
extra_opts="$(. "${myscript}" 2>/dev/null ; echo "${opts}")"
37
37
38
if [ "${BE_VERBOSE}" = "yes" ] ; then
38
if [ "${BE_VERBOSE}" = "yes" ] ; then

Return to bug 190045