Merge pull request #3073 from donaldsharp/pid_cleanup

Pid cleanup
This commit is contained in:
Russ White 2018-09-24 10:47:38 -04:00 committed by GitHub
commit 97cedbcc4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 32 deletions

View File

@ -262,34 +262,6 @@ bool frr_zclient_addr(struct sockaddr_storage *sa, socklen_t *sa_len,
static struct frr_daemon_info *di = NULL;
static void frr_guard_daemon(void)
{
int fd;
struct flock lock;
const char *path = di->pid_file;
fd = open(path, O_RDWR);
if (fd != -1) {
memset(&lock, 0, sizeof(lock));
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
if (fcntl(fd, F_GETLK, &lock) < 0) {
flog_err_sys(
EC_LIB_SYSTEM_CALL,
"Could not do F_GETLK pid_file %s (%s), exiting",
path, safe_strerror(errno));
exit(1);
} else if (lock.l_type == F_WRLCK) {
flog_err_sys(
EC_LIB_SYSTEM_CALL,
"Process %d has a write lock on file %s already! Error: (%s)",
lock.l_pid, path, safe_strerror(errno));
exit(1);
}
close(fd);
}
}
void frr_preinit(struct frr_daemon_info *daemon, int argc, char **argv)
{
di = daemon;
@ -619,9 +591,6 @@ struct thread_master *frr_init(void)
zprivs_init(di->privs);
/* Guard to prevent a second instance of this daemon */
frr_guard_daemon();
master = thread_master_create(NULL);
signal_init(master, di->n_signals, di->signals);

View File

@ -60,7 +60,7 @@ pid_t pid_output(const char *path)
if (fcntl(fd, F_SETLK, &lock) < 0) {
flog_err_sys(EC_LIB_SYSTEM_CALL,
"Could not lock pid_file %s (%s), exiting",
"Could not lock pid_file %s (%s), exiting. Please ensure that the daemon is not already running",
path, safe_strerror(errno));
exit(1);
}