diff options
| author | Unbit <info@unbit.it> | 2014-05-08 09:06:30 +0200 |
|---|---|---|
| committer | Unbit <info@unbit.it> | 2014-05-08 09:06:30 +0200 |
| commit | eac016a416de19a765bc848fad3817316cdd0d31 (patch) | |
| tree | c764fbe8e16af0a4f341022d1d775341c7fe3306 /core/fork_server.c | |
| parent | 5ffd5f9bb98c946c15e34ccddebeb78650170bb1 (diff) | |
| download | uwsgi-eac016a416de19a765bc848fad3817316cdd0d31.tar.gz | |
force processname in fork-server mode
Diffstat (limited to 'core/fork_server.c')
| -rw-r--r-- | core/fork_server.c | 9 |
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 |
