aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/rc-service.86
-rw-r--r--src/rc/rc-service.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/man/rc-service.8 b/man/rc-service.8
index 8f075de4..a0202a8e 100644
--- a/man/rc-service.8
+++ b/man/rc-service.8
@@ -35,6 +35,9 @@
.Fl e , -exists
.Ar service
.Nm
+.Fl Z , -dry-run
+.Ar service
+.Nm
.Fl l , -list
.Nm
.Fl r , -resolve
@@ -68,6 +71,9 @@ return 0 if it can find
otherwise -1.
.Fl r , -resolve
does the same and also prints the full path of the service to stdout.
+.Pp
+.Fl Z , -dry-run
+prints out the commands it would execute rather than executing them.
.Sh SEE ALSO
.Xr openrc 8 ,
.Xr stdout 3
diff --git a/src/rc/rc-service.c b/src/rc/rc-service.c
index 8e7b00dc..77f0336b 100644
--- a/src/rc/rc-service.c
+++ b/src/rc/rc-service.c
@@ -29,7 +29,7 @@
const char *applet = NULL;
const char *extraopts = NULL;
-const char *getoptstring = "ce:ilr:IN" getoptstring_COMMON;
+const char *getoptstring = "ce:ilr:INZ" getoptstring_COMMON;
const struct option longopts[] = {
{ "exists", 1, NULL, 'e' },
{ "ifcrashed", 0, NULL, 'c' },
@@ -38,6 +38,7 @@ const struct option longopts[] = {
{ "ifnotstarted", 0, NULL, 'N' },
{ "list", 0, NULL, 'l' },
{ "resolve", 1, NULL, 'r' },
+ { "dry-run", 0, NULL, 'Z' },
longopts_COMMON
};
const char * const longopts_help[] = {
@@ -48,6 +49,7 @@ const char * const longopts_help[] = {
"if the service is not started then run the command",
"list all available services",
"resolve the service name to an init script",
+ "dry run (show what would happen)",
longopts_help_COMMON
};
const char *usagestring = "" \
@@ -112,6 +114,9 @@ int main(int argc, char **argv)
free(service);
return EXIT_SUCCESS;
/* NOTREACHED */
+ case 'Z':
+ setenv("IN_DRYRUN", "yes", 1);
+ break;
case_RC_COMMON_GETOPT
}