Marcela Mašláňová f2de85
diff -up at-3.1.11/atd.8.in.dont_fork at-3.1.11/atd.8.in
Marcela Mašláňová f2de85
--- at-3.1.11/atd.8.in.dont_fork	2009-08-14 18:49:05.000000000 +0200
Marcela Mašláňová f2de85
+++ at-3.1.11/atd.8.in	2009-10-01 13:03:18.799878107 +0200
Marcela Mašláňová f2de85
@@ -1,4 +1,4 @@
Marcela Mašláňová f2de85
-.TH ATD 8 "Mar 1997" local "Linux Programmer's Manual"
Marcela Mašláňová f2de85
+.TH ATD 8 "Sep 2009" at-3.1.11 "Linux Programmer's Manual"
Marcela Mašláňová f2de85
 .SH NAME
Marcela Mašláňová f2de85
 atd \- run jobs queued for later execution
Marcela Mašláňová f2de85
 .SH SYNOPSIS
Marcela Mašláňová f2de85
@@ -9,6 +9,7 @@ atd \- run jobs queued for later executi
Marcela Mašláňová f2de85
 .IR batch_interval ]
Marcela Mašláňová f2de85
 .RB [ -d ]
Marcela Mašláňová f2de85
 .RB [ -s ]
Marcela Mašláňová f2de85
+.RB [ -n ]
Marcela Mašláňová f2de85
 .SH DESCRIPTION
Marcela Mašláňová f2de85
 .B atd
Marcela Mašláňová f2de85
 runs jobs queued by
Marcela Mašláňová f2de85
@@ -45,6 +46,9 @@ A script invoking
Marcela Mašláňová f2de85
 is installed as
Marcela Mašláňová f2de85
 .B @prefix@/sbin/atrun
Marcela Mašláňová f2de85
 for backward compatibility.
Marcela Mašláňová f2de85
++.TP 8
Marcela Mašláňová f2de85
++.B -n
Marcela Mašláňová f2de85
++Don't fork option.
Marcela Mašláňová f2de85
 .SH WARNING
Marcela Mašláňová f2de85
 .B atd
Marcela Mašláňová f2de85
 won't work if its spool directory is mounted via NFS even if
Marcela Mašláňová f2de85
diff -up at-3.1.11/atd.c.dont_fork at-3.1.11/atd.c
Marcela Mašláňová f2de85
--- at-3.1.11/atd.c.dont_fork	2009-10-01 13:03:18.000000000 +0200
Marcela Mašláňová f2de85
+++ at-3.1.11/atd.c	2009-10-01 13:04:55.289631298 +0200
Marcela Mašláňová f2de85
@@ -729,7 +729,7 @@ main(int argc, char *argv[])
Marcela Mašláňová f2de85
     run_as_daemon = 1;
Marcela Mašláňová f2de85
     batch_interval = BATCH_INTERVAL_DEFAULT;
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
-    while ((c = getopt(argc, argv, "sdl:b:")) != EOF) {
Marcela Mašláňová f2de85
+    while ((c = getopt(argc, argv, "sdl:b:n")) != EOF) {
Marcela Mašláňová f2de85
 	switch (c) {
Marcela Mašláňová f2de85
 	case 'l':
Marcela Mašláňová f2de85
 	    if (sscanf(optarg, "%lf", &load_avg) != 1)
Marcela Mašláňová f2de85
@@ -744,7 +744,10 @@ main(int argc, char *argv[])
Marcela Mašláňová f2de85
 	    break;
Marcela Mašláňová f2de85
 	case 'd':
Marcela Mašláňová f2de85
 	    daemon_debug++;
Marcela Mašláňová f2de85
-	    break;
Marcela Mašláňová f2de85
+        /* go through another option*/
Marcela Mašláňová f2de85
+   case 'n':
Marcela Mašláňová f2de85
+        daemon_nofork++;
Marcela Mašláňová f2de85
+        break;
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
 	case 's':
Marcela Mašláňová f2de85
 	    run_as_daemon = 0;
Marcela Mašláňová f2de85
diff -up at-3.1.11/daemon.c.dont_fork at-3.1.11/daemon.c
Marcela Mašláňová f2de85
--- at-3.1.11/daemon.c.dont_fork	2009-08-14 18:49:05.000000000 +0200
Marcela Mašláňová f2de85
+++ at-3.1.11/daemon.c	2009-10-01 13:03:18.800878165 +0200
Marcela Mašláňová f2de85
@@ -48,7 +48,8 @@
Marcela Mašláňová f2de85
 #include "daemon.h"
Marcela Mašláňová f2de85
 #include "privs.h"
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
-int daemon_debug;
Marcela Mašláňová f2de85
+int daemon_debug = 0;
Marcela Mašláňová f2de85
+int daemon_nofork = 0;
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
 static int
Marcela Mašláňová f2de85
 lock_fd(int fd)
Marcela Mašláňová f2de85
@@ -117,15 +118,18 @@ daemon_setup()
Marcela Mašláňová f2de85
 	    (open("/dev/null", O_RDWR) != 2)) {
Marcela Mašláňová f2de85
 	    perr("Error redirecting I/O");
Marcela Mašláňová f2de85
 	}
Marcela Mašláňová f2de85
+    }
Marcela Mašláňová f2de85
+    if (daemon_nofork) pid = getpid();
Marcela Mašláňová f2de85
+    else {
Marcela Mašláňová f2de85
 	pid = fork();
Marcela Mašláňová f2de85
 	if (pid == -1) {
Marcela Mašláňová f2de85
 	    perr("Cannot fork");
Marcela Mašláňová f2de85
 	} else if (pid != 0) {
Marcela Mašláňová f2de85
 	    exit(0);
Marcela Mašláňová f2de85
 	}
Marcela Mašláňová f2de85
+	(void) setsid();
Marcela Mašláňová f2de85
     }
Marcela Mašláňová f2de85
     old_umask = umask(S_IWGRP | S_IWOTH);
Marcela Mašláňová f2de85
-    (void) setsid();
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
     PRIV_START
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
diff -up at-3.1.11/daemon.h.dont_fork at-3.1.11/daemon.h
Marcela Mašláňová f2de85
--- at-3.1.11/daemon.h.dont_fork	2009-08-14 18:49:05.000000000 +0200
Marcela Mašláňová f2de85
+++ at-3.1.11/daemon.h	2009-10-01 13:03:18.801877593 +0200
Marcela Mašláňová f2de85
@@ -14,3 +14,4 @@ __attribute__((noreturn))
Marcela Mašláňová f2de85
 perr (const char *fmt, ...);
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
 extern int daemon_debug;
Marcela Mašláňová f2de85
+extern int daemon_nofork;