1 /* vi: set sw=4 ts=4: */
5 * Copyright (C) 2007 by Stephane Billiart <stephane.billiart@gmail.com>
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
10 /* Override ENABLE_FEATURE_PIDFILE */
11 #define WANT_PIDFILE 1
14 smallint wrote_pidfile
;
16 void FAST_FUNC
write_pidfile(const char *path
)
20 char buf
[sizeof(int)*3 + 2];
25 /* we will overwrite stale pidfile */
26 pid_fd
= open(path
, O_WRONLY
|O_CREAT
|O_TRUNC
, 0666);
30 /* path can be "/dev/null"! Test for such cases */
31 wrote_pidfile
= (fstat(pid_fd
, &sb
) == 0) && S_ISREG(sb
.st_mode
);
34 /* few bytes larger, but doesn't use stdio */
35 end
= utoa_to_buf(getpid(), buf
, sizeof(buf
));
37 full_write(pid_fd
, buf
, end
- buf
+ 1);