Call setpgrp added
This commit is contained in:
parent
536d65af0f
commit
2041e889f5
@ -477,7 +477,7 @@ pid_t launch(char *cmd, char *opts, char *name, int tasktype)
|
|||||||
{
|
{
|
||||||
char buf[PATH_MAX], *vector[16];
|
char buf[PATH_MAX], *vector[16];
|
||||||
int i, rc = 0;
|
int i, rc = 0;
|
||||||
pid_t pid = 0;
|
pid_t pid = 0, lpgrp;
|
||||||
|
|
||||||
Syslog('r', "launch() entered");
|
Syslog('r', "launch() entered");
|
||||||
if (checktasks(0) >= MAXTASKS) {
|
if (checktasks(0) >= MAXTASKS) {
|
||||||
@ -502,6 +502,12 @@ pid_t launch(char *cmd, char *opts, char *name, int tasktype)
|
|||||||
}
|
}
|
||||||
Syslog('r', "launch() step 2");
|
Syslog('r', "launch() step 2");
|
||||||
|
|
||||||
|
if ((lpgrp = setpgid(0, 0)) == -1) {
|
||||||
|
Syslog('?', "$setpgid failed");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Syslog('r', "launch() step 3, lpgrp=%d", lpgrp);
|
||||||
|
|
||||||
switch (pid = fork()) {
|
switch (pid = fork()) {
|
||||||
case -1:
|
case -1:
|
||||||
Syslog('?', "$Launch: error, can't fork grandchild");
|
Syslog('?', "$Launch: error, can't fork grandchild");
|
||||||
@ -513,7 +519,7 @@ pid_t launch(char *cmd, char *opts, char *name, int tasktype)
|
|||||||
*/
|
*/
|
||||||
msleep(150);
|
msleep(150);
|
||||||
|
|
||||||
Syslog('r', "launch() step 3");
|
Syslog('r', "launch() step 4");
|
||||||
/* From Paul Vixies cron: */
|
/* From Paul Vixies cron: */
|
||||||
rc = setsid(); /* It doesn't seem to help */
|
rc = setsid(); /* It doesn't seem to help */
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
@ -535,7 +541,7 @@ pid_t launch(char *cmd, char *opts, char *name, int tasktype)
|
|||||||
_exit(MBERR_EXEC_FAILED);
|
_exit(MBERR_EXEC_FAILED);
|
||||||
}
|
}
|
||||||
errno = 0;
|
errno = 0;
|
||||||
Syslog('r', "launch() step 4");
|
Syslog('r', "launch() step 5");
|
||||||
rc = execv(vector[0],vector);
|
rc = execv(vector[0],vector);
|
||||||
Syslog('?', "$Launch: execv \"%s\" failed, returned %d", cmd, rc);
|
Syslog('?', "$Launch: execv \"%s\" failed, returned %d", cmd, rc);
|
||||||
_exit(MBERR_EXEC_FAILED);
|
_exit(MBERR_EXEC_FAILED);
|
||||||
@ -544,7 +550,7 @@ pid_t launch(char *cmd, char *opts, char *name, int tasktype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Syslog('r', "launch() step 5");
|
Syslog('r', "launch() step 6");
|
||||||
/*
|
/*
|
||||||
* Add it to the tasklist.
|
* Add it to the tasklist.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user