Data may be passed into the service through reading pipes and out of it through writing pipes. These pipes can remain open only until the service and client have terminated, or can be made to stay open after the client has terminated and (if the service program forks) the main service process has exited; the behaviour is controlled by options passed to the client by its caller.
The caller can arrange that a writing pipe be connected to a pipe or similar object and cause attempts to write to that descriptor by the service to generate a SIGPIPE (or EPIPE if SIGPIPE is caught or ignored) in the service.
Likewise, the service can close filedescriptors specified for reading, which will cause the corresponding filedescriptors passed by the caller to be closed, so that if these are pipes processes which write to them will receive SIGPIPE or EPIPE.
This login name and the calling uid are available in the configuration language in the calling-user parameter and are passed to the service program in environment variables USERV_USER and USERV_UID.
The shell corresponding to that login name (according to the password entry) is available as in the configuration language's calling-user-shell parameter.
If no relevant password entry can be found then no service will be invoked.
If no name can be found for a numeric group to which the calling process belongs then no service will be invoked.
--defvar
name=
value
option to the client are available in the
configuration language as the corresponding u-
name
parameters and are passed to the service program in environment
variables USERV_U_
name
.