17#include "apr_arch_threadproc.h"
18#include "apr_arch_file_io.h"
225 if ((pid =
fork()) < 0) {
245#if APR_HAVE_STRUCT_RLIMIT && APR_HAVE_SETRLIMIT
260#if defined(RLIMIT_AS)
266#elif defined(RLIMIT_DATA)
272#elif defined(RLIMIT_VMEM)
311 const char *
const *
args,
312 const char *
const *
env,
451#if APR_HAVE_STRUCT_RLIMIT
459 attr->limit_cpu = limit;
466#if defined(RLIMIT_DATA) || defined(RLIMIT_VMEM) || defined(RLIMIT_AS)
467 attr->limit_mem = limit;
475 attr->limit_nproc = limit;
483 attr->limit_nofile = limit;
APR Portability Routines.
static apr_file_t no_file
#define APR_CHILD_NOTDONE
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
apr_int32_t apr_fileperms_t
const char apr_fileperms_t perms
#define APR_FILEPATH_NATIVE
char const *const char const *const ** env
apr_status_t() apr_perms_setfn_t(void *object, apr_fileperms_t perms, apr_uid_t uid, apr_gid_t gid)
#define apr_pcalloc(p, size)
const char const char * password
apr_int32_t apr_int32_t apr_int32_t err
apr_file_t apr_file_t * parent_out
apr_perms_setfn_t * perms_set_fn
const char const char *const const char *const apr_procattr_t * attr
void() apr_child_errfn_t(apr_pool_t *proc, apr_status_t err, const char *description)
apr_child_errfn_t * errfn
int apr_exit_why_e * exitwhy
apr_file_t apr_file_t * parent_in
const char const char *const * args
int apr_exit_why_e apr_wait_how_e waithow
apr_file_t apr_file_t * parent_err
static apr_status_t limit_proc(apr_procattr_t *attr)
static apr_status_t apr_netware_proc_cleanup(void *theproc)
static apr_proc_t newproc
apr_status_t apr_unix_file_cleanup(void *thefile)
int waitpid(pid_t pid, int *statusp, int options)