crond: put tasks in separate process groups
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 2 Dec 2008 21:52:24 +0000 (21:52 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 2 Dec 2008 21:52:24 +0000 (21:52 -0000)
miscutils/crond.c

index bd7a177e0ea411312b5bd4c476fd3bae7fba2d2b..1960a2c35442f2ca741c42f0a91e99aff13956b7 100644 (file)
@@ -779,6 +779,8 @@ ForkJob(const char *user, CronLine *line, int mailFd,
                        xmove_fd(mailFd, mail_filename ? 1 : 0);
                        dup2(1, 2);
                }
+               /* "standard" cron puts tasks in separate process groups */
+               setpgrp();
                execlp(prog, prog, cmd, arg, NULL);
                crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user, prog, cmd, arg);
                if (mail_filename) {
@@ -914,6 +916,8 @@ static void RunJob(const char *user, CronLine *line)
                if (DebugOpt) {
                        crondlog(LVL5 "child running %s", DEFAULT_SHELL);
                }
+               /* "standard" cron puts tasks in separate process groups */
+               setpgrp();
                execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", line->cl_Shell, NULL);
                crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user,
                                 DEFAULT_SHELL, "-c", line->cl_Shell);