diff --git a/sapi/fpm/fpm/fpm_conf.c b/sapi/fpm/fpm/fpm_conf.c index ac4343bbf889e..1aaaf1cc35993 100644 --- a/sapi/fpm/fpm/fpm_conf.c +++ b/sapi/fpm/fpm/fpm_conf.c @@ -106,6 +106,7 @@ static const struct ini_value_parser_s ini_fpm_global_options[] = { #ifdef HAVE_SYSTEMD { "systemd_interval", &fpm_conf_set_time, GO(systemd_interval) }, #endif + { "proctitle_prefix", &fpm_conf_set_string, GO(proctitle_prefix) }, { 0, 0, 0 } }; diff --git a/sapi/fpm/fpm/fpm_conf.h b/sapi/fpm/fpm/fpm_conf.h index 5b354a9bdecef..f61c47bdedda6 100644 --- a/sapi/fpm/fpm/fpm_conf.h +++ b/sapi/fpm/fpm/fpm_conf.h @@ -44,6 +44,7 @@ struct fpm_global_config_s { int systemd_watchdog; int systemd_interval; #endif + char *proctitle_prefix; }; extern struct fpm_global_config_s fpm_global_config; diff --git a/sapi/fpm/fpm/fpm_env.c b/sapi/fpm/fpm/fpm_env.c index 1f95fcc469a4a..249b6b4556635 100644 --- a/sapi/fpm/fpm/fpm_env.c +++ b/sapi/fpm/fpm/fpm_env.c @@ -124,11 +124,11 @@ void fpm_env_setproctitle(char *title) /* {{{ */ #elif defined(HAVE_SETPROCTITLE) setproctitle("%s", title); #elif defined(__linux__) || defined(__APPLE__) - size_t prefixlen = strlen(SETPROCTITLE_PREFIX); + char *proctitle_prefix = fpm_global_config.proctitle_prefix ? fpm_global_config.proctitle_prefix : SETPROCTITLE_PREFIX; + size_t prefixlen = strlen(proctitle_prefix); if (fpm_env_argv != NULL && fpm_env_argv_len > prefixlen + 3) { memset(fpm_env_argv[0], 0, fpm_env_argv_len); - strncpy(fpm_env_argv[0], SETPROCTITLE_PREFIX, fpm_env_argv_len - 2); - strncpy(fpm_env_argv[0] + prefixlen, title, fpm_env_argv_len - prefixlen - 2); + snprintf(fpm_env_argv[0], fpm_env_argv_len - 2, "%s: %s", proctitle_prefix, title); fpm_env_argv[1] = NULL; } #endif diff --git a/sapi/fpm/fpm/fpm_env.h b/sapi/fpm/fpm/fpm_env.h index dacf6f8701544..b4bd95cd1e323 100644 --- a/sapi/fpm/fpm/fpm_env.h +++ b/sapi/fpm/fpm/fpm_env.h @@ -5,7 +5,7 @@ #include "fpm_worker_pool.h" -#define SETPROCTITLE_PREFIX "php-fpm: " +#define SETPROCTITLE_PREFIX "php-fpm" int fpm_env_init_child(struct fpm_worker_pool_s *wp); int fpm_env_init_main(void); diff --git a/sapi/fpm/php-fpm.conf.in b/sapi/fpm/php-fpm.conf.in index f1b48adca08f2..a8034e916db37 100644 --- a/sapi/fpm/php-fpm.conf.in +++ b/sapi/fpm/php-fpm.conf.in @@ -124,6 +124,10 @@ ; Default value: 10 ;systemd_interval = 10 +; Set the process prefix name +; Default value: php-fpm +;proctitle_prefix = FPM1 + ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;;