- Implemented FR #54172 (Overriding the pid file location of php-fpm)

This commit is contained in:
Jérôme Loyet 2011-07-02 23:41:01 +00:00
parent 0124c28610
commit 9b64314250
4 changed files with 19 additions and 4 deletions

View File

@ -29,6 +29,7 @@ struct fpm_globals_s fpm_globals = {
.argv = NULL,
.config = NULL,
.prefix = NULL,
.pid = NULL,
.running_children = 0,
.error_log_fd = 0,
.log_level = 0,
@ -38,7 +39,7 @@ struct fpm_globals_s fpm_globals = {
.test_successful = 0
};
int fpm_init(int argc, char **argv, char *config, char *prefix, int test_conf) /* {{{ */
int fpm_init(int argc, char **argv, char *config, char *prefix, char *pid, int test_conf) /* {{{ */
{
fpm_globals.argc = argc;
fpm_globals.argv = argv;
@ -46,6 +47,7 @@ int fpm_init(int argc, char **argv, char *config, char *prefix, int test_conf) /
fpm_globals.config = strdup(config);
}
fpm_globals.prefix = prefix;
fpm_globals.pid = pid;
if (0 > fpm_php_init_main() ||
0 > fpm_stdio_init_main() ||

View File

@ -8,7 +8,7 @@
#include <unistd.h>
int fpm_run(int *max_requests);
int fpm_init(int argc, char **argv, char *config, char *prefix, int test_conf);
int fpm_init(int argc, char **argv, char *config, char *prefix, char *pid, int test_conf);
struct fpm_globals_s {
pid_t parent_pid;
@ -16,6 +16,7 @@ struct fpm_globals_s {
char **argv;
char *config;
char *prefix;
char *pid;
int running_children;
int error_log_fd;
int log_level;

View File

@ -1206,6 +1206,10 @@ int fpm_conf_init_main(int test_conf) /* {{{ */
}
}
if (fpm_globals.pid && *fpm_globals.pid) {
fpm_global_config.pid_file = strdup(fpm_globals.pid);
}
if (fpm_globals.config == NULL) {
char *tmp;

View File

@ -155,6 +155,7 @@ static const opt_struct OPTIONS[] = {
{'y', 1, "fpm-config"},
{'t', 0, "test"},
{'p', 1, "prefix"},
{'g', 1, "pid"},
{'-', 0, NULL} /* end of args */
};
@ -959,7 +960,7 @@ static void php_cgi_usage(char *argv0)
prog = "php";
}
php_printf( "Usage: %s [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p <prefix> ] [-c <file>] [-d foo[=bar]] [-y <file>]\n"
php_printf( "Usage: %s [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p <prefix>] [-g <pid>] [-c <file>] [-d foo[=bar]] [-y <file>]\n"
" -c <path>|<file> Look for php.ini file in this directory\n"
" -n No php.ini file will be used\n"
" -d foo[=bar] Define INI entry foo with value 'bar'\n"
@ -970,6 +971,8 @@ static void php_cgi_usage(char *argv0)
" -v Version number\n"
" -p, --prefix <dir>\n"
" Specify alternative prefix path to FastCGI process manager (default: %s).\n"
" -g, --pid <file>\n"
" Specify the PID file location.\n"
" -y, --fpm-config <file>\n"
" Specify alternative path to FastCGI process manager config file.\n"
" -t, --test Test FPM configuration and exit\n",
@ -1585,6 +1588,7 @@ int main(int argc, char *argv[])
fcgi_request request;
char *fpm_config = NULL;
char *fpm_prefix = NULL;
char *fpm_pid = NULL;
int test_conf = 0;
#ifdef HAVE_SIGNAL_H
@ -1669,6 +1673,10 @@ int main(int argc, char *argv[])
fpm_prefix = php_optarg;
break;
case 'g':
fpm_pid = php_optarg;
break;
case 'e': /* enable extended info output */
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
break;
@ -1814,7 +1822,7 @@ consult the installation file that came with this distribution, or visit \n\
}
}
if (0 > fpm_init(argc, argv, fpm_config ? fpm_config : CGIG(fpm_config), fpm_prefix, test_conf)) {
if (0 > fpm_init(argc, argv, fpm_config ? fpm_config : CGIG(fpm_config), fpm_prefix, fpm_pid, test_conf)) {
return FAILURE;
}