Set proctitle: avoid the use of __attribute__((constructor)).

This cased a segfault in some Linux system and was GCC-specific.

Commit modified by @antirez:

1) Stripped away the part to set the proc title via config for now.
2) Handle initialization of setproctitle only when the replacement
   is used.
3) Don't require GCC now that the attribute constructor is no
   longer used.
This commit is contained in:
Stam He
2013-02-27 11:53:11 +08:00
committed by antirez
parent f69b0a0db8
commit 6f96ac1c1c
3 changed files with 15 additions and 4 deletions

View File

@ -2586,16 +2586,23 @@ void redisOutOfMemoryHandler(size_t allocation_size) {
}
void redisSetProcTitle(char *title) {
#ifdef USE_SETPROCTITLE
setproctitle("%s %s:%d",
title,
server.bindaddr ? server.bindaddr : "*",
server.port);
#else
REDIS_NOTUSED(title);
#endif
}
int main(int argc, char **argv) {
struct timeval tv;
/* We need to initialize our libraries, and the server configuration. */
#ifdef INIT_SETPROCTITLE_REPLACEMENT
spt_init(argc, argv);
#endif
zmalloc_enable_thread_safeness();
zmalloc_set_oom_handler(redisOutOfMemoryHandler);
srand(time(NULL)^getpid());