#include <sys/stat.h>
#include <errno.h>
+#include <sys/time.h>
+
#include <atalk/compat.h>
#include <atalk/util.h>
+static struct itimerval itimer;
+
/* this creates an open lock file which hangs around until the program
* dies. it returns the pid. due to problems w/ solaris, this has
* been changed to do the kill() thing. */
FILE *pf;
pid_t pid;
int mask;
-
+
+ if ( !debug ) {
mask = umask(022);
/* check for pid. this can get fooled by stale pid's. */
if ((pf = fopen(pidfile, "r"))) {
/*
* Disassociate from controlling tty.
*/
- if ( !debug ) {
+
int i;
+ getitimer(ITIMER_PROF, &itimer);
switch (pid = fork()) {
case 0 :
+ setitimer(ITIMER_PROF, &itimer, NULL);
fclose(stdin);
fclose(stdout);
fclose(stderr);
+ i = open( "/dev/null", O_RDWR );
+ i = open( "/dev/null", O_RDWR );
+ i = open( "/dev/null", O_RDWR );
#ifdef TIOCNOTTY
if (( i = open( "/dev/tty", O_RDWR )) >= 0 ) {
fclose(pf);
return pid;
}
- }
fprintf(pf, "%d\n", getpid());
fclose(pf);
+ }
+
return 0;
}
+