+ if (!mk_pid && pid_fname)
+ {
+ FILE *f = fopen(pid_fname, "w");
+ if (!f)
+ {
+ yaz_log(LOG_ERRNO|LOG_FATAL, "Couldn't create %s", pid_fname);
+ exit(0);
+ }
+ fprintf(f, "%ld", (long) getpid());
+ fclose(f);
+ mk_pid = 1;
+ }
+ if (pid_fname)
+ {
+ if (mk_pid)
+ unlink(pid_fname);
+ xfree(pid_fname);
+ }