chpst - runs a program with a changed process state
[-vP012] [-u user
] [-U user
] [-b argv0
] [-/ root
] [-n inc
] [-l|-L lock
] [-d bytes
] [-o n
] [-p n
] [-f bytes
consists of one or more arguments.
changes the process state according to the given options, and runs
- -u [:]user[:group]
- setuidgid. Set uid and gid to the user's uid and
gid, as found in /etc/passwd. If user is followed by a colon
and a group, set the gid to group's gid, as found in
/etc/group, instead of user's gid. If group consists
of a colon-separated list of group names, chpst sets the group ids
of all listed groups. If user is prefixed with a colon, the
user and all group arguments are interpreted as uid and gids
respectivly, and not looked up in the password or group file. All initial
supplementary groups are removed.
- -U [:]user[:group]
- envuidgid. Set the environment variables $UID and $GID to
the user's uid and gid, as found in /etc/passwd. If
user is followed by a colon and a group, set $GID to the
group's gid, as found in /etc/group, instead of
user's gid. If user is prefixed with a colon, the
user and group arguments are interpreted as uid and gid
respectivly, and not looked up in the password or group file.
- -b argv0
- argv0. Run prog with argv0 as the 0th
- -e dir
- envdir. Set various environment variables as specified by
files in the directory dir: If dir contains a file named
k whose first line is v, chpst removes the
environment variable k if it exists, and then adds the environment
variable k with the value v. The name k must not
contain =. Spaces and tabs at the end of v are removed, and nulls
in v are changed to newlines. If the file k is empty (0
bytes long), chpst removes the environment variable k if it
exists, without adding a new variable.
- -/ root
- chroot. Change the root directory to root before
- -n inc
- nice. Add inc to the nice(2) value before
starting prog. inc must be an integer, and may start with a
minus or plus.
- -l lock
- lock. Open the file lock for writing, and obtain an
exclusive lock on it. lock will be created if it does not exist. If
lock is locked by another process, wait until a new lock can be
- -L lock
- The same as -l, but fail immediately if lock is
locked by another process.
- -m bytes
- limit memory. Limit the data segment, stack segment, locked
physical pages, and total of all segment per process to bytes bytes
- -d bytes
- limit data segment. Limit the data segment per process to
- -o n
- limit open files. Limit the number of open file descriptors
per process to n.
- -p n
- limit processes. Limit the number of processes per uid to
- -f bytes
- limit output size. Limit the output file size to
- -c bytes
- limit core size. Limit the core file size to bytes
- verbose. Print verbose messages to standard error. This
includes warnings about limits unsupported by the system.
- pgrphack. Run prog in a new process group.
- Close standard input before starting prog.
- Close standard output before starting prog.
- Close standard error before starting prog.
exits 100 when called with wrong options. It prints an error
message and exits 111 if it has trouble changing the process state. Otherwise
its exit code is the same as that of prog
is called as envdir
, or softlimit
, it emulates the
functionality of these programs from the daemontools package respectively.
sv(8), runsv(8), setsid(2), runit(8), runit-init(8), runsvdir(8), runsvchdir(8)
Gerrit Pape <email@example.com>