Cleanup patches from Rune Magnussen

This commit is contained in:
Bill Cox
2015-09-15 03:53:44 -07:00
parent f5dd4e6b67
commit bb14828ea1
7 changed files with 89 additions and 115 deletions

View File

@@ -1,13 +1,15 @@
// Functions used when running in the background
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <errno.h>
#include <unistd.h>
#include "infnoise.h"
bool writePid(int32_t pid, char *fileName) {
// Write af PID in a file
static bool writePid(int32_t pid, char *fileName) {
FILE *pidFile;
int ret;
pidFile = fopen(fileName,"w");
@@ -21,3 +23,31 @@ bool writePid(int32_t pid, char *fileName) {
fclose(pidFile);
return true;
}
void startDaemon(bool daemon, bool pidFile, char *fileName) {
if(!daemon) {
// No backgrounding, optionslly write current PID
if(pidFile) {
writePid(getpid(), fileName);
}
return;
}
int32_t pid = fork();
if(pid < 0) {
fputs("fork() failed\n", stderr);
exit(1);
} else if(pid > 0) {
// Parent
if(pidFile) {
if(!writePid(pid, fileName)) {
exit(1);
}
}
exit(0);
}
// Child
}
bool isSuperUser(void) {
return (geteuid() == 0);
}