Create a pidfile that matches the daemon process id when backgrounded.
This commit is contained in:
parent
9ce31ec4d8
commit
ac6f60c4fe
14
ndhc/ndhc.c
14
ndhc/ndhc.c
@ -58,6 +58,8 @@
|
|||||||
#define NUMPACKETS 3 /* number of packets to send before delay */
|
#define NUMPACKETS 3 /* number of packets to send before delay */
|
||||||
#define RETRY_DELAY 30 /* time in seconds to delay after sending NUMPACKETS */
|
#define RETRY_DELAY 30 /* time in seconds to delay after sending NUMPACKETS */
|
||||||
|
|
||||||
|
static char pidfile[MAX_PATH_LENGTH] = PID_FILE_DEFAULT;
|
||||||
|
|
||||||
static unsigned long requested_ip, server_addr, timeout;
|
static unsigned long requested_ip, server_addr, timeout;
|
||||||
static unsigned long lease, t1, t2, xid, start;
|
static unsigned long lease, t1, t2, xid, start;
|
||||||
static int state, packet_num, fd, listen_mode;
|
static int state, packet_num, fd, listen_mode;
|
||||||
@ -194,6 +196,11 @@ static void background(void)
|
|||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
called = 1; /* Do not fork again. */
|
called = 1; /* Do not fork again. */
|
||||||
|
if (file_exists(pidfile, "w") == -1) {
|
||||||
|
log_line("FATAL - cannot open pidfile for write!");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
write_pid(pidfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_timeout(void)
|
static void handle_timeout(void)
|
||||||
@ -460,7 +467,6 @@ static int do_work(void)
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
char pidfile[MAX_PATH_LENGTH] = PID_FILE_DEFAULT;
|
|
||||||
char chroot_dir[MAX_PATH_LENGTH] = "";
|
char chroot_dir[MAX_PATH_LENGTH] = "";
|
||||||
int c, len;
|
int c, len;
|
||||||
struct passwd *pwd;
|
struct passwd *pwd;
|
||||||
@ -558,12 +564,6 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
log_line("ndhc client " VERSION " started.");
|
log_line("ndhc client " VERSION " started.");
|
||||||
|
|
||||||
if (file_exists(pidfile, "w") == -1) {
|
|
||||||
log_line("FATAL - cannot open pidfile for write!");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
write_pid(pidfile);
|
|
||||||
|
|
||||||
if (read_interface(client_config.interface, &client_config.ifindex,
|
if (read_interface(client_config.interface, &client_config.ifindex,
|
||||||
NULL, client_config.arp) < 0)
|
NULL, client_config.arp) < 0)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user