aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/rc-service.814
-rw-r--r--src/rc/rc-service.c12
2 files changed, 25 insertions, 1 deletions
diff --git a/man/rc-service.8 b/man/rc-service.8
index a0202a8e..3613f8b8 100644
--- a/man/rc-service.8
+++ b/man/rc-service.8
@@ -20,6 +20,14 @@
.Ar service cmd
.Op Ar ...
.Nm
+.Fl d , -debug
+.Ar service cmd
+.Op Ar ...
+.Nm
+.Fl D , -nodeps
+.Ar service cmd
+.Op Ar ...
+.Nm
.Op Fl i , -ifexists
.Ar service cmd
.Op Ar ...
@@ -72,6 +80,12 @@ otherwise -1.
.Fl r , -resolve
does the same and also prints the full path of the service to stdout.
.Pp
+.Fl d , -debug
+sets -x when running the service script(s).
+.Pp
+.Fl D , -nodeps
+ignores dependencies when running the service.
+.Pp
.Fl Z , -dry-run
prints out the commands it would execute rather than executing them.
.Sh SEE ALSO
diff --git a/src/rc/rc-service.c b/src/rc/rc-service.c
index 77f0336b..ea69dab5 100644
--- a/src/rc/rc-service.c
+++ b/src/rc/rc-service.c
@@ -29,8 +29,10 @@
const char *applet = NULL;
const char *extraopts = NULL;
-const char *getoptstring = "ce:ilr:INZ" getoptstring_COMMON;
+const char *getoptstring = "cdDe:ilr:INZ" getoptstring_COMMON;
const struct option longopts[] = {
+ { "debug", 0, NULL, 'd' },
+ { "nodeps", 0, NULL, 'D' },
{ "exists", 1, NULL, 'e' },
{ "ifcrashed", 0, NULL, 'c' },
{ "ifexists", 0, NULL, 'i' },
@@ -42,6 +44,8 @@ const struct option longopts[] = {
longopts_COMMON
};
const char * const longopts_help[] = {
+ "set xtrace when running the command",
+ "ignore dependencies",
"tests if the service exists or not",
"if the service is crashed then run the command",
"if the service exists then run the command",
@@ -78,6 +82,12 @@ int main(int argc, char **argv)
longopts, (int *) 0)) != -1)
{
switch (opt) {
+ case 'd':
+ setenv("RC_DEBUG", "yes", 1);
+ break;
+ case 'D':
+ setenv("RC_NODEPS", "yes", 1);
+ break;
case 'e':
service = rc_service_resolve(optarg);
opt = service ? EXIT_SUCCESS : EXIT_FAILURE;