int
pidfile(
const char *basename
)
)
writes a file containing the process ID of the program to the
/var/run
directory.
The file name has the form
/var/run/basename.pid
.
If the
basename
argument is NULL,
pidfile
will determine the program name and use that instead.
The pid file can be used as a quick reference if the process needs to be sent a signal. When the program exits, the pid file will be removed automatically, unless the program receives a fatal signal.
Note that only the first invocation of
pidfile
causes a pid file to be written; subsequent invocations have no effect
unless a new
basename
is supplied.
If called with a new
basename,
pidfile()
will remove the old pid file and write the new one.
)
returns 0 on success and -1 on failure.
)
uses
atexit(3)
to ensure the pidfile is unlinked at program exit.
However, programs that use the
_exit(2)
function (for example, in signal handlers)
will not trigger this behaviour.