diff --git a/modules/fcgid/fcgid_proc_unix.c b/modules/fcgid/fcgid_proc_unix.c index 82c46b0..027f3be 100644 --- a/modules/fcgid/fcgid_proc_unix.c +++ b/modules/fcgid/fcgid_proc_unix.c @@ -429,7 +429,12 @@ proc_kill_gracefully(fcgid_procnode * procnode, server_rec * main_server) kill(getpid(), SIGTERM); return APR_EACCES; } - rv = apr_proc_kill(&(procnode->proc_id), SIGTERM); + //rv = apr_proc_kill(&(procnode->proc_id), SIGTERM); + if (procnode->proc_id.pid != -1) { + rv = apr_proc_kill(&(procnode->proc_id), SIGTERM); + } else { + rv = APR_SUCCESS; + } if (ap_unixd_config.suexec_enabled && seteuid(ap_unixd_config.user_id) != 0) { kill(getpid(), SIGTERM); @@ -449,7 +454,12 @@ apr_status_t proc_kill_force(fcgid_procnode * procnode, kill(getpid(), SIGTERM); return APR_EACCES; } - rv = apr_proc_kill(&(procnode->proc_id), SIGKILL); + //rv = apr_proc_kill(&(procnode->proc_id), SIGKILL); + if (procnode->proc_id.pid != -1) { + rv = apr_proc_kill(&(procnode->proc_id), SIGKILL); + } else { + rv = APR_SUCCESS; + } if (ap_unixd_config.suexec_enabled && seteuid(ap_unixd_config.user_id) != 0) { kill(getpid(), SIGTERM);