public class Proc extends Object
Modifier and Type | Field and Description |
---|---|
static int |
APR_CHILD_BLOCK |
static int |
APR_FULL_BLOCK |
static int |
APR_FULL_NONBLOCK |
static int |
APR_JUST_WAIT
wait forever for the process to complete
|
static int |
APR_KILL_AFTER_TIMEOUT
SIGTERM, wait 3 seconds, SIGKILL
|
static int |
APR_KILL_ALWAYS
process is sent SIGKILL on apr_pool_t cleanup
|
static int |
APR_KILL_NEVER
process is never sent any signals
|
static int |
APR_KILL_ONLY_ONCE
send SIGTERM and then wait
|
static int |
APR_LIMIT_CPU |
static int |
APR_LIMIT_MEM |
static int |
APR_LIMIT_NOFILE |
static int |
APR_LIMIT_NPROC |
static int |
APR_NO_PIPE
process exited and dumped a core file
|
static int |
APR_NOWAIT
wait for the specified process to finish
|
static int |
APR_OC_REASON_DEATH
child has died, caller must call unregister still
|
static int |
APR_OC_REASON_LOST
somehow the child exited without us knowing ... buggy os?
|
static int |
APR_OC_REASON_RESTART
a restart is occurring, perform any necessary cleanup (including
sending a special signal to child)
|
static int |
APR_OC_REASON_RUNNING
a health check is occurring, for most maintenance functions
this is a no-op.
|
static int |
APR_OC_REASON_UNREGISTER
unregister has been called, do whatever is necessary (including
kill the child)
|
static int |
APR_OC_REASON_UNWRITABLE
write_fd is unwritable
|
static int |
APR_PARENT_BLOCK |
static int |
APR_PROC_DETACH_DAEMONIZE
Do not detach
|
static int |
APR_PROC_DETACH_FOREGROUND |
static int |
APR_PROC_EXIT
do not wait -- just see if it has finished
|
static int |
APR_PROC_SIGNAL
process exited normally
|
static int |
APR_PROC_SIGNAL_CORE
process exited due to a signal
|
static int |
APR_PROGRAM
use the shell to invoke the program
|
static int |
APR_PROGRAM_ENV
invoke the program directly, no copied env
|
static int |
APR_PROGRAM_PATH
invoke the program, replicating our environment
|
static int |
APR_SHELLCM |
static int |
APR_SHELLCMD_ENV
find program on PATH, use our environment
|
static int |
APR_WAIT
use the shell to invoke the program,
replicating our environment
|
static int |
MAX_ARGS_SIZE
Detach
|
static int |
MAX_ENV_SIZE |
Constructor and Description |
---|
Proc() |
Modifier and Type | Method and Description |
---|---|
static long |
alloc(long cont)
Allocate apr_proc_t structure from pool
This is not an apr function.
|
static int |
create(long proc,
String progname,
String[] args,
String[] env,
long attr,
long pool)
Create a new process and execute a new program within that process.
|
static int |
detach(int daemonize)
Detach the process from the controlling terminal.
|
static int |
fork(long[] proc,
long cont)
This is currently the only non-portable call in APR.
|
static int |
kill(long proc,
int sig)
Terminate a process.
|
static int |
wait(long proc,
int[] exit,
int waithow)
Wait for a child process to die
|
static int |
waitAllProcs(long proc,
int[] exit,
int waithow,
long pool)
Wait for any current child process to die and return information
about that child.
|
public static final int APR_SHELLCM
public static final int APR_PROGRAM
public static final int APR_PROGRAM_ENV
public static final int APR_PROGRAM_PATH
public static final int APR_SHELLCMD_ENV
public static final int APR_WAIT
public static final int APR_NOWAIT
public static final int APR_PROC_EXIT
public static final int APR_PROC_SIGNAL
public static final int APR_PROC_SIGNAL_CORE
public static final int APR_NO_PIPE
public static final int APR_FULL_BLOCK
public static final int APR_FULL_NONBLOCK
public static final int APR_PARENT_BLOCK
public static final int APR_CHILD_BLOCK
public static final int APR_LIMIT_CPU
public static final int APR_LIMIT_MEM
public static final int APR_LIMIT_NPROC
public static final int APR_LIMIT_NOFILE
public static final int APR_OC_REASON_DEATH
public static final int APR_OC_REASON_UNWRITABLE
public static final int APR_OC_REASON_RESTART
public static final int APR_OC_REASON_UNREGISTER
public static final int APR_OC_REASON_LOST
public static final int APR_OC_REASON_RUNNING
public static final int APR_KILL_NEVER
public static final int APR_KILL_ALWAYS
public static final int APR_KILL_AFTER_TIMEOUT
public static final int APR_JUST_WAIT
public static final int APR_KILL_ONLY_ONCE
public static final int APR_PROC_DETACH_FOREGROUND
public static final int APR_PROC_DETACH_DAEMONIZE
public static final int MAX_ARGS_SIZE
public static final int MAX_ENV_SIZE
public static long alloc(long cont)
cont
- The pool to use.public static int fork(long[] proc, long cont)
proc
- The resulting process handle.cont
- The pool to use.public static int create(long proc, String progname, String[] args, String[] env, long attr, long pool)
proc
- The process handleprogname
- The program to runargs
- The arguments to pass to the new program. The first
one should be the program name.env
- The new environment table for the new process. This
should be a list of NULL-terminated strings. This argument
is ignored for APR_PROGRAM_ENV, APR_PROGRAM_PATH, and
APR_SHELLCMD_ENV types of commands.attr
- The procattr we should use to determine how to create the new
processpool
- The pool to use.public static int wait(long proc, int[] exit, int waithow)
proc
- The process handle that corresponds to the desired child processexit
- exit[0] The returned exit status of the child, if a child process
dies, or the signal that caused the child to die.
On platforms that don't support obtaining this information,
the status parameter will be returned as APR_ENOTIMPL.
exit[1] Why the child died, the bitwise or of:
APR_PROC_EXIT -- process terminated normally APR_PROC_SIGNAL -- process was killed by a signal APR_PROC_SIGNAL_CORE -- process was killed by a signal, and generated a core dump.
waithow
- How should we wait. One of:
APR_WAIT -- block until the child process dies. APR_NOWAIT -- return immediately regardless of if the child is dead or not.
APR_CHILD_DONE -- child is no longer running. APR_CHILD_NOTDONE -- child is still running.
public static int waitAllProcs(long proc, int[] exit, int waithow, long pool)
proc
- Pointer to NULL on entry, will be filled out with child's
informationexit
- exit[0] The returned exit status of the child, if a child process
dies, or the signal that caused the child to die.
On platforms that don't support obtaining this information,
the status parameter will be returned as APR_ENOTIMPL.
exit[1] Why the child died, the bitwise or of:
APR_PROC_EXIT -- process terminated normally APR_PROC_SIGNAL -- process was killed by a signal APR_PROC_SIGNAL_CORE -- process was killed by a signal, and generated a core dump.
waithow
- How should we wait. One of:
APR_WAIT -- block until the child process dies. APR_NOWAIT -- return immediately regardless of if the child is dead or not.
pool
- Pool to allocate child information out of.public static int detach(int daemonize)
daemonize
- set to non-zero if the process should daemonize
and become a background process, else it will
stay in the foreground.public static int kill(long proc, int sig)
proc
- The process to terminate.sig
- How to kill the process.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.