aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Reichardt <mi@jrei.ch>2017-11-20 23:45:51 +0100
committerWilliam Hubbs <w.d.hubbs@gmail.com>2017-11-29 15:06:06 -0600
commitddbdb696582e9fd61995f15d6a3a53055a151e41 (patch)
treee024598751b72733b7274b9bbe221b7e90694215
parentc84ebb94d19ca856fe064e15d2068d5671e360c9 (diff)
add more variables for start-stop-daemon and supervise-daemon options
Add the following variables to expose more arguments that can be passed to start-stop-daemon or supervise-daemon: - directory will be passed to --chdir - error_log will be passed to --stderr - output_log will be passed to --stdout - umask will be passed to umask This is for #184.
-rw-r--r--man/openrc-run.820
-rw-r--r--sh/start-stop-daemon.sh4
-rw-r--r--sh/supervise-daemon.sh4
3 files changed, 28 insertions, 0 deletions
diff --git a/man/openrc-run.8 b/man/openrc-run.8
index 3f4f7e81..e1db58bd 100644
--- a/man/openrc-run.8
+++ b/man/openrc-run.8
@@ -157,6 +157,24 @@ use this to change the user id before
or
.Xr supervise-daemon 8
launches the daemon
+.It Ar output_log
+This is the path to a file or named pipe where the standard output from
+the service will be redirected. If you are starting this service with
+.Xr start-stop-daemon 8 ,
+, you must set
+.Pa command_background
+to true. Keep in mind that this path will be inside the chroot if the
+.Pa chroot
+variable is set.
+.It Ar error_log
+The same thing as
+.Pa output_log
+but for the standard error output.
+.It Ar directory
+.Xr start-stop-daemon 8
+and
+.Xr supervise-daemon 8
+will chdir to this directory before starting the daemon.
.It Ar chroot
.Xr start-stop-daemon 8
and
@@ -201,6 +219,8 @@ used along with in_background_fake to support re-entrant services.
.It Ar in_background_fake
Space separated list of commands which should always succeed when
in_background is yes.
+.It Ar umask
+Set the umask of the daemon.
.Pp
Keep in mind that eval is used to process chroot, command, command_args_*,
command_user, pidfile and procname. This may affect how they are
diff --git a/sh/start-stop-daemon.sh b/sh/start-stop-daemon.sh
index 0793b19a..35c642c0 100644
--- a/sh/start-stop-daemon.sh
+++ b/sh/start-stop-daemon.sh
@@ -44,9 +44,13 @@ ssd_start()
eval start-stop-daemon --start \
--exec $command \
${chroot:+--chroot} $chroot \
+ ${directory:+--chdir} $directory \
+ ${output_log+--stdout} $output_log \
+ ${error_log+--stderr} $error_log \
${procname:+--name} $procname \
${pidfile:+--pidfile} $pidfile \
${command_user+--user} $command_user \
+ ${umask+--umask} $umask \
$_background $start_stop_daemon_args \
-- $command_args $command_args_background
if eend $? "Failed to start ${name:-$RC_SVCNAME}"; then
diff --git a/sh/supervise-daemon.sh b/sh/supervise-daemon.sh
index f6e599d5..b600b9c6 100644
--- a/sh/supervise-daemon.sh
+++ b/sh/supervise-daemon.sh
@@ -24,12 +24,16 @@ supervise_start()
# to work properly.
eval supervise-daemon "${RC_SVCNAME}" --start \
${retry:+--retry} $retry \
+ ${directory:+--chdir} $directory \
${chroot:+--chroot} $chroot \
+ ${output_log+--stdout} ${output_log} \
+ ${error_log+--stderr} $error_log \
${pidfile:+--pidfile} $pidfile \
${respawn_delay:+--respawn-delay} $respawn_delay \
${respawn_max:+--respawn-max} $respawn_max \
${respawn_period:+--respawn-period} $respawn_period \
${command_user+--user} $command_user \
+ ${umask+--umask} $umask \
$supervise_daemon_args \
$command \
-- $command_args $command_args_foreground