summaryrefslogtreecommitdiff
path: root/core/fork_server.c
diff options
context:
space:
mode:
authorUnbit <info@unbit.it>2014-05-08 09:06:30 +0200
committerUnbit <info@unbit.it>2014-05-08 09:06:30 +0200
commiteac016a416de19a765bc848fad3817316cdd0d31 (patch)
treec764fbe8e16af0a4f341022d1d775341c7fe3306 /core/fork_server.c
parent5ffd5f9bb98c946c15e34ccddebeb78650170bb1 (diff)
downloaduwsgi-eac016a416de19a765bc848fad3817316cdd0d31.tar.gz
force processname in fork-server mode
Diffstat (limited to 'core/fork_server.c')
-rw-r--r--core/fork_server.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/fork_server.c b/core/fork_server.c
index 266ffa9f..232678c4 100644
--- a/core/fork_server.c
+++ b/core/fork_server.c
@@ -164,16 +164,25 @@ void uwsgi_fork_server(char *socket) {
// build new argc/argv
uwsgi.new_argc = 0;
+ size_t procname_len = 1;
uwsgi_foreach(usl, usl_argv) {
uwsgi.new_argc++;
+ procname_len += usl->len + 1;
}
+
+ char *new_procname = uwsgi_calloc(procname_len);
uwsgi.new_argv = uwsgi_calloc(sizeof(char *) * (uwsgi.new_argc + 1));
int counter = 0;
uwsgi_foreach(usl, usl_argv) {
uwsgi.new_argv[counter] = usl->value;
+ strcat(new_procname, usl->value);
+ strcat(new_procname, " ");
counter++;
}
+ // fix process name
+ uwsgi_set_processname(new_procname);
+ free(new_procname);
// this is the only step required to have a consistent environment
uwsgi.fork_socket = NULL;
// this avoids the process to re-exec itself