Changeset View
Changeset View
Standalone View
Standalone View
head/usr.sbin/cron/cron/cron.c
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
#endif | #endif | ||||
sighup_handler(int), | sighup_handler(int), | ||||
parse_args(int c, char *v[]); | parse_args(int c, char *v[]); | ||||
static int run_at_secres(cron_db *); | static int run_at_secres(cron_db *); | ||||
static time_t last_time = 0; | static time_t last_time = 0; | ||||
static int dst_enabled = 0; | static int dst_enabled = 0; | ||||
static int dont_daemonize = 0; | |||||
struct pidfh *pfh; | struct pidfh *pfh; | ||||
static void | static void | ||||
usage() { | usage() { | ||||
#if DEBUGGING | #if DEBUGGING | ||||
char **dflags; | char **dflags; | ||||
#endif | #endif | ||||
fprintf(stderr, "usage: cron [-j jitter] [-J rootjitter] " | fprintf(stderr, "usage: cron [-j jitter] [-J rootjitter] " | ||||
"[-m mailto] [-s] [-o] [-x debugflag[,...]]\n"); | "[-m mailto] [-n ] [-s] [-o] [-x debugflag[,...]]\n"); | ||||
#if DEBUGGING | #if DEBUGGING | ||||
fprintf(stderr, "\ndebugflags: "); | fprintf(stderr, "\ndebugflags: "); | ||||
for(dflags = DebugFlagNames; *dflags; dflags++) { | for(dflags = DebugFlagNames; *dflags; dflags++) { | ||||
fprintf(stderr, "%s ", *dflags); | fprintf(stderr, "%s ", *dflags); | ||||
} | } | ||||
fprintf(stderr, "\n"); | fprintf(stderr, "\n"); | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | #endif | ||||
/* if there are no debug flags turned on, fork as a daemon should. | /* if there are no debug flags turned on, fork as a daemon should. | ||||
*/ | */ | ||||
# if DEBUGGING | # if DEBUGGING | ||||
if (DebugFlags) { | if (DebugFlags) { | ||||
# else | # else | ||||
if (0) { | if (0) { | ||||
# endif | # endif | ||||
(void) fprintf(stderr, "[%d] cron started\n", getpid()); | (void) fprintf(stderr, "[%d] cron started\n", getpid()); | ||||
} else { | } else if (dont_daemonize == 0) { | ||||
if (daemon(1, 0) == -1) { | if (daemon(1, 0) == -1) { | ||||
pidfile_remove(pfh); | pidfile_remove(pfh); | ||||
log_it("CRON",getpid(),"DEATH","can't become daemon"); | log_it("CRON",getpid(),"DEATH","can't become daemon"); | ||||
exit(0); | exit(0); | ||||
} | } | ||||
} | } | ||||
if (madvise(NULL, 0, MADV_PROTECT) != 0) | if (madvise(NULL, 0, MADV_PROTECT) != 0) | ||||
▲ Show 20 Lines • Show All 359 Lines • ▼ Show 20 Lines | |||||
static void | static void | ||||
parse_args(argc, argv) | parse_args(argc, argv) | ||||
int argc; | int argc; | ||||
char *argv[]; | char *argv[]; | ||||
{ | { | ||||
int argch; | int argch; | ||||
char *endp; | char *endp; | ||||
while ((argch = getopt(argc, argv, "j:J:m:osx:")) != -1) { | while ((argch = getopt(argc, argv, "j:J:m:nosx:")) != -1) { | ||||
switch (argch) { | switch (argch) { | ||||
case 'j': | case 'j': | ||||
Jitter = strtoul(optarg, &endp, 10); | Jitter = strtoul(optarg, &endp, 10); | ||||
if (*optarg == '\0' || *endp != '\0' || Jitter > 60) | if (*optarg == '\0' || *endp != '\0' || Jitter > 60) | ||||
errx(ERROR_EXIT, | errx(ERROR_EXIT, | ||||
"bad value for jitter: %s", optarg); | "bad value for jitter: %s", optarg); | ||||
break; | break; | ||||
case 'J': | case 'J': | ||||
RootJitter = strtoul(optarg, &endp, 10); | RootJitter = strtoul(optarg, &endp, 10); | ||||
if (*optarg == '\0' || *endp != '\0' || RootJitter > 60) | if (*optarg == '\0' || *endp != '\0' || RootJitter > 60) | ||||
errx(ERROR_EXIT, | errx(ERROR_EXIT, | ||||
"bad value for root jitter: %s", optarg); | "bad value for root jitter: %s", optarg); | ||||
break; | break; | ||||
case 'm': | case 'm': | ||||
defmailto = optarg; | defmailto = optarg; | ||||
break; | |||||
case 'n': | |||||
dont_daemonize = 1; | |||||
break; | break; | ||||
case 'o': | case 'o': | ||||
dst_enabled = 0; | dst_enabled = 0; | ||||
break; | break; | ||||
case 's': | case 's': | ||||
dst_enabled = 1; | dst_enabled = 1; | ||||
break; | break; | ||||
case 'x': | case 'x': | ||||
Show All 23 Lines |