Use $SHELL environment variable to run the shell scripts.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 21 Feb 2012 19:13:53 +0000 (19:13 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 21 Feb 2012 19:13:53 +0000 (19:13 +0000)
daemon/daemon.ml
daemon/whenjobsd.pod

index 1155f50..6f5edfb 100644 (file)
@@ -357,8 +357,10 @@ and run_job job =
     close_out chan;
     chmod script 0o700;
 
+    let shell = try getenv "SHELL" with Not_found -> "/bin/sh" in
+
     (* Execute the shell script. *)
-    (try execvp "bash" [| "bash"; "-c"; script |];
+    (try execvp shell [| shell; "-c"; script |];
      with Unix_error (err, fn, _) ->
        Syslog.error "%s failed: %s: %s" fn script (error_message err)
     );
index 938358b..182a62d 100644 (file)
@@ -101,6 +101,11 @@ from the L<whenjobs(1)> tool.
 The user's home directory.  This directory must exist and must be
 owned by the same user as the daemon.
 
+=item C<$SHELL>
+
+The shell used to execute shell scripts.  If not set, C</bin/sh> is
+used.
+
 =back
 
 =head1 SEE ALSO