aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/runscript.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rc/runscript.c b/src/rc/runscript.c
index 2f66971c..8e0ced98 100644
--- a/src/rc/runscript.c
+++ b/src/rc/runscript.c
@@ -1079,12 +1079,13 @@ service_plugable(void)
}
#include "_usage.h"
-#define getoptstring "dDsvl:Z" getoptstring_COMMON
+#define getoptstring "dDsSvl:Z" getoptstring_COMMON
#define extraopts "stop | start | restart | describe | zap"
static const struct option longopts[] = {
{ "debug", 0, NULL, 'd'},
{ "dry-run", 0, NULL, 'Z'},
{ "ifstarted", 0, NULL, 's'},
+ { "ifstopped", 0, NULL, 'S'},
{ "nodeps", 0, NULL, 'D'},
{ "lockfd", 1, NULL, 'l'},
longopts_COMMON
@@ -1093,6 +1094,7 @@ static const char *const longopts_help[] = {
"set xtrace when running the script",
"show what would be done",
"only run commands when started",
+ "only run commands when stopped",
"ignore dependencies",
"fd of the exclusive lock from rc",
longopts_help_COMMON
@@ -1235,6 +1237,10 @@ runscript(int argc, char **argv)
if (!(rc_service_state(service) & RC_SERVICE_STARTED))
exit(EXIT_FAILURE);
break;
+ case 'S':
+ if (!(rc_service_state(service) & RC_SERVICE_STOPPED))
+ exit(EXIT_FAILURE);
+ break;
case 'D':
deps = false;
break;