]> git.saurik.com Git - redis.git/commitdiff
Merge git://github.com/lucsky/redis
authorantirez <antirez@gmail.com>
Mon, 23 Mar 2009 16:21:33 +0000 (17:21 +0100)
committerantirez <antirez@gmail.com>
Mon, 23 Mar 2009 16:21:33 +0000 (17:21 +0100)
1  2 
redis.c

diff --combined redis.c
index e6606f1822adafbb3801d03c4d75d82d0fea1e11,fa0d6158f4ae173ac313667a9af60bfe2ad3b094..40b9264ecef899e5ccd6919adf44b071eae6e354
+++ 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;