summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-12-02 21:52:24 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-12-02 21:52:24 +0000
commitb6ddee242592ffd02c05ae3ed6127c1dd80d7580 (patch)
treed2035d15a35e84d26987154a03b1eb6f4176101d
parentc5045fdbf1bbb8314b78e5f8d219a4449231a33e (diff)
crond: put tasks in separate process groups
-rw-r--r--miscutils/crond.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/miscutils/crond.c b/miscutils/crond.c
index bd7a177e0..1960a2c35 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -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);