]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/pid_output.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / pid_output.c
index 9a7307bc4f7937ab29ced4986d567f85dce8b2e3..f5f7b1d17172bc822ac8ed5339c69526d9db28dd 100644 (file)
@@ -24,6 +24,7 @@
 #include <log.h>
 #include "version.h"
 #include "network.h"
+#include "lib_errors.h"
 
 #define PIDFILE_MASK 0644
 
@@ -41,8 +42,9 @@ pid_t pid_output(const char *path)
        oldumask = umask(0777 & ~PIDFILE_MASK);
        fd = open(path, O_RDWR | O_CREAT, PIDFILE_MASK);
        if (fd < 0) {
-               zlog_err("Can't create pid lock file %s (%s), exiting", path,
-                        safe_strerror(errno));
+               flog_err_sys(EC_LIB_SYSTEM_CALL,
+                            "Can't create pid lock file %s (%s), exiting",
+                            path, safe_strerror(errno));
                umask(oldumask);
                exit(1);
        } else {
@@ -57,21 +59,25 @@ pid_t pid_output(const char *path)
                lock.l_whence = SEEK_SET;
 
                if (fcntl(fd, F_SETLK, &lock) < 0) {
-                       zlog_err("Could not lock pid_file %s (%s), exiting",
-                                path, safe_strerror(errno));
+                       flog_err_sys(EC_LIB_SYSTEM_CALL,
+                                    "Could not lock pid_file %s (%s), exiting.  Please ensure that the daemon is not already running",
+                                    path, safe_strerror(errno));
                        exit(1);
                }
 
                sprintf(buf, "%d\n", (int)pid);
                pidsize = strlen(buf);
                if ((tmp = write(fd, buf, pidsize)) != (int)pidsize)
-                       zlog_err(
+                       flog_err_sys(
+                               EC_LIB_SYSTEM_CALL,
                                "Could not write pid %d to pid_file %s, rc was %d: %s",
                                (int)pid, path, tmp, safe_strerror(errno));
                else if (ftruncate(fd, pidsize) < 0)
-                       zlog_err(
+                       flog_err_sys(
+                               EC_LIB_SYSTEM_CALL,
                                "Could not truncate pid_file %s to %u bytes: %s",
-                               path, (u_int)pidsize, safe_strerror(errno));
+                               path, (unsigned int)pidsize,
+                               safe_strerror(errno));
        }
        return pid;
 }