All of the procedures listed below return procedures generated from the supplied arguments. These procedures take one argument in the case of destructors and no arguments in the case of constructors.
The returned procedure will execute command in a shell and
#t if execution was successful, otherwise
For convenience, it takes multiple arguments which will be
make-system-constructor, but returns
execution of the command was successful,
#t if not.
Return a procedure that forks a child process, closes all file
descriptors except the standard output and standard error descriptors, sets
the current directory to directory, changes the environment to
environment-variables (using the
environ procedure), sets the
current user to user and the current group to group unless they
#f, and executes command (a list of strings.) The result of
the procedure will be the PID of the child process.
When pid-file is true, it must be the name of a PID file associated with the process being launched; the return value is the PID once that file has been created. If pid-file does not show up in less than pid-file-timeout seconds, the service is considered as failing to start.
When log-file is true, it must be the name of a file. The file will be removed if it exists and the services stdout and stderr will be redirected to it.
Returns a procedure that sends signal to the pid which it takes
as argument. This does work together with respawning services,
because in that case the
stop method of the
class sets the
running slot to
#f before actually
calling the destructor; if it would not do that, killing the process
in the destructor would immediately respawn the service.
make-forkexec-constructor procedure builds upon the following
Run command as the current process from directory, and with
environment-variables (a list of strings like
File descriptors 1 and 2 are kept as is, whereas file descriptor 0
(standard input) points to /dev/null; all other file descriptors
are closed prior to yielding control to command.
By default, command is run as the current user. If the user keyword argument is present and not false, change to user immediately before invoking command. user may be a string, indicating a user name, or a number, indicating a user ID. Likewise, command will be run under the current group, unless the group keyword argument is present and not false.
fork+exec-command does the same as
exec-command, but in
a separate process whose PID it returns.