changeset 370:cd574d45afee

delete pidfile at exit
author Louis Opter <kalessin@kalessin.fr>
date Sat, 07 Nov 2015 18:04:17 -0800
parents d7f9235a8150
children 5c0bf43dd4bc
files add_pidfile_option.patch
diffstat 1 files changed, 24 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/add_pidfile_option.patch	Sat Nov 07 17:27:45 2015 -0800
+++ b/add_pidfile_option.patch	Sat Nov 07 18:04:17 2015 -0800
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  41c123383a622483dc2153d09693a5916804d220
+# Parent  c514d06adcfb4c6cfbc918cb64aed9fe9570b030
 Add the -p (--pidfile) option
 
 Needed to properly support old school startup scripts.
@@ -7,7 +7,7 @@
 diff --git a/core/daemon.c b/core/daemon.c
 --- a/core/daemon.c
 +++ b/core/daemon.c
-@@ -371,6 +371,33 @@
+@@ -371,6 +371,35 @@
      return true;
  }
  
@@ -28,12 +28,14 @@
 +
 +    if (lgtd_user_info && lgtd_group_info
 +        && fchown(fd, lgtd_user_info->pw_uid, lgtd_group_info->gr_gid) == -1) {
-+        goto err;
++        lgtd_warn(
++            "can't chown %s to %s:%s",
++            filepath, lgtd_user_info->pw_name, lgtd_group_info->gr_name
++        );
 +    }
 +
 +    written = write(fd, pidstr, (size_t)pidlen);
 +
-+err:
 +    close(fd);
 +    return written == pidlen;
 +}
@@ -65,7 +67,17 @@
  }; 
  
  struct event_base *lgtd_ev_base = NULL;
-@@ -150,12 +151,13 @@
+@@ -86,6 +87,9 @@
+ #if LIBEVENT_VERSION_NUMBER >= 0x02010100
+     libevent_global_shutdown();
+ #endif
++    if (lgtd_opts.pidfile) {
++        unlink(lgtd_opts.pidfile);
++    }
+ }
+ 
+ static void
+@@ -150,12 +154,13 @@
  "Usage: %s ...\n\n"
  "  [-l,--listen addr:port]              Listen for JSON-RPC commands over TCP at\n"
  "                                       this address (can be repeated).\n"
@@ -80,7 +92,7 @@
  "  [-u,--user user]                     Drop privileges to this user (and the\n"
  "                                       group of this user if -g is missing).\n"
  "  [-g,--group group]                   Drop privileges to this group (-g requires\n"
-@@ -197,6 +199,7 @@
+@@ -197,6 +202,7 @@
          {"socket",          required_argument, NULL, 's'},
          {"foreground",      no_argument,       NULL, 'f'},
          {"daemonize",       no_argument,       NULL, 'd'},
@@ -88,7 +100,7 @@
          {"user",            required_argument, NULL, 'u'},
          {"group",           required_argument, NULL, 'g'},
          {"syslog",          no_argument,       NULL, 'S'},
-@@ -206,11 +209,11 @@
+@@ -206,11 +212,11 @@
          {"help",            no_argument,       NULL, 'h'},
          {"verbosity",       required_argument, NULL, 'v'},
          {"version",         no_argument,       NULL, 'V'},
@@ -102,7 +114,7 @@
  
      if (argc == 1) {
          lgtd_usage(progname);
-@@ -246,6 +249,10 @@
+@@ -246,6 +252,10 @@
              break;
          case 'd':
              lgtd_opts.foreground = false;
@@ -113,7 +125,7 @@
          case 'u':
              lgtd_opts.user = optarg;
              break;
-@@ -284,7 +291,7 @@
+@@ -284,7 +294,7 @@
              printf("%s %s\n", progname, LGTD_VERSION);
              lgtd_cleanup();
              return 0;
@@ -122,7 +134,7 @@
              printf(
                  "%s%s\n", LGTD_INSTALL_PREFIX, LGTD_INSTALL_PREFIX[
                      LGTD_ARRAY_SIZE(LGTD_INSTALL_PREFIX) - 1
-@@ -313,6 +320,11 @@
+@@ -313,6 +323,11 @@
      if (lgtd_opts.user) {
          lgtd_daemon_set_user(lgtd_opts.user);
          lgtd_daemon_set_group(lgtd_opts.group);
@@ -134,7 +146,7 @@
          lgtd_daemon_drop_privileges();
      } else if (lgtd_opts.group) {
          lgtd_errx(1, "please, specify an user with the -u option");
-@@ -332,6 +344,11 @@
+@@ -332,6 +347,11 @@
          }
      }
  
@@ -160,7 +172,7 @@
 diff --git a/docs/first-steps.rst b/docs/first-steps.rst
 --- a/docs/first-steps.rst
 +++ b/docs/first-steps.rst
-@@ -120,25 +120,28 @@
+@@ -145,25 +145,28 @@
  
     Usage: lightsd ...