From: antirez Date: Mon, 23 Mar 2009 16:21:33 +0000 (+0100) Subject: Merge git://github.com/lucsky/redis X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/2a200c784da1c7d33f72e3b92425f029214f70a1?ds=sidebyside;hp=-c Merge git://github.com/lucsky/redis --- 2a200c784da1c7d33f72e3b92425f029214f70a1 diff --combined redis.c index e6606f18,fa0d6158..40b9264e --- a/redis.c +++ b/redis.c @@@ -171,6 -171,7 +171,7 @@@ struct redisServer int maxidletime; int dbnum; int daemonize; + char *pidfile; int bgsaveinprogress; struct saveparam *saveparams; int saveparamslen; @@@ -715,6 -716,7 +716,7 @@@ static void initServerConfig() server.bindaddr = NULL; server.glueoutputbuf = 1; server.daemonize = 0; + server.pidfile = "/var/run/redis.pid"; server.dbfilename = "dump.rdb"; ResetServerSaveParams(); @@@ -878,6 -880,8 +880,8 @@@ static void loadServerConfig(char *file else { err = "argument must be 'yes' or 'no'"; goto loaderr; } + } else if (!strcmp(argv[0],"pidfile") && argc == 2) { + server.pidfile = zstrdup(argv[1]); } else { err = "Bad directive or wrong number of arguments"; goto loaderr; } @@@ -1899,6 -1903,9 +1903,9 @@@ static void bgsaveCommand(redisClient * static void shutdownCommand(redisClient *c) { redisLog(REDIS_WARNING,"User requested shutdown, saving DB..."); if (saveDb(server.dbfilename) == REDIS_OK) { + if (server.daemonize) { + unlink(server.pidfile); + } redisLog(REDIS_WARNING,"Server exit now, bye bye..."); exit(1); } else { @@@ -2619,7 -2626,7 +2626,7 @@@ static void sortCommand(redisClient *c /* Create a list of operations to perform for every sorted element. * Operations can be GET/DEL/INCR/DECR */ operations = listCreate(); - listSetFreeMethod(operations,free); + listSetFreeMethod(operations,zfree); j = 2; /* Now we need to protect sortval incrementing its count, in the future @@@ -3033,7 -3040,7 +3040,7 @@@ static void daemonize(void) if (fd > STDERR_FILENO) close(fd); } /* Try to write the pid file */ - fp = fopen("/var/run/redis.pid","w"); + fp = fopen(server.pidfile,"w"); if (fp) { fprintf(fp,"%d\n",getpid()); fclose(fp); @@@ -3056,7 -3063,7 +3063,7 @@@ int main(int argc, char **argv) redisLog(REDIS_NOTICE,"DB loaded from disk"); if (aeCreateFileEvent(server.el, server.fd, AE_READABLE, acceptHandler, NULL, NULL) == AE_ERR) oom("creating file event"); - redisLog(REDIS_NOTICE,"The server is now ready to accept connections"); + redisLog(REDIS_NOTICE,"The server is now ready to accept connections on port %d", server.port); aeMain(server.el); aeDeleteEventLoop(server.el); return 0;