79 basename = __progname;
84 if (pidfile_path != NULL) {
85 if (!access(pidfile_path, R_OK) && pid == pidfile_pid) {
86 utimensat(0, pidfile_path, NULL, 0);
91 __pidfile_name = NULL;
95 if (basename[0] !=
'/') {
96 if (asprintf(&pidfile_path,
"%s%s.pid", __pidfile_path, basename) == -1)
99 if (asprintf(&pidfile_path,
"%s", basename) == -1)
103 if ((f = fopen(pidfile_path,
"w")) == NULL) {
111 if (fprintf(f,
"%ld\n", (
long)pid) <= 0 || fflush(f) != 0) {
114 (void) unlink(pidfile_path);
121 __pidfile_name = pidfile_path;
131 if (atexit(pidfile_cleanup) < 0) {
133 (void) unlink(pidfile_path);