check for procname

This commit is contained in:
roberto@mrspurr
2011-10-16 09:54:35 +02:00
parent b39a10ff7c
commit 34bc7c0cfd
2 changed files with 15 additions and 3 deletions
+5 -1
View File
@@ -3190,6 +3190,7 @@ void uwsgi_apply_config_pass(char symbol, char*(*hook)(char *) ) {
void uwsgi_set_processname(char *name) {
#if defined(__linux__) || defined(__sun__)
char *pos = uwsgi.orig_argv[0];
size_t amount = 0;
@@ -3213,18 +3214,21 @@ void uwsgi_set_processname(char *name) {
}
memset(pos, ' ', uwsgi.max_procname-amount);
#endif
}
// this is a wrapper for fork restoring original argv
pid_t uwsgi_fork(char *name) {
int i;
pid_t pid = fork();
if (pid == 0) {
#if defined(__linux__) || defined(__sun__)
int i;
for(i=0;i<uwsgi.argc;i++) {
strcpy(uwsgi.orig_argv[i],uwsgi.argv[i]);
}
#endif
if (uwsgi.auto_procname && name) {
uwsgi_set_processname(name);
}
+10 -2
View File
@@ -852,12 +852,18 @@ void signal_pidfile(int sig, char *filename) {
void fixup_argv_and_environ(int argc, char **argv, char **environ) {
uwsgi.orig_argv = argv;
uwsgi.argv = argv;
uwsgi.argc = argc;
uwsgi.environ = environ;
#if defined(__linux__) || defined(__sun__)
int i;
int env_count = 0;
uwsgi.orig_argv = argv;
uwsgi.argv = uwsgi_malloc( sizeof(char *) * argc);
uwsgi.argc = argc;
for(i=0;i<argc;i++) {
if (i==0 || argv[0] + uwsgi.max_procname + 1 == argv[i]) {
@@ -880,6 +886,8 @@ void fixup_argv_and_environ(int argc, char **argv, char **environ) {
uwsgi_log("max space for custom process name = %d\n", uwsgi.max_procname);
#endif
environ = uwsgi.environ;
#endif
}
#ifdef UWSGI_AS_SHARED_LIBRARY