Fix - reports crashed if the user could not be switched (because mailtrain was not run under root). Now an error is reported.
This commit is contained in:
parent
2ac89f3365
commit
7a08ffa596
4 changed files with 52 additions and 13 deletions
|
@ -15,26 +15,36 @@ let processes = {};
|
|||
|
||||
function spawnProcess(tid, executable, args, outFile, errFile, cwd, uid, gid) {
|
||||
|
||||
function reportFail(msg) {
|
||||
process.send({
|
||||
type: 'process-failed',
|
||||
msg,
|
||||
tid
|
||||
});
|
||||
}
|
||||
|
||||
fs.open(outFile, 'w', (err, outFd) => {
|
||||
if (err) {
|
||||
log.error('Executor', err);
|
||||
reportFail('Cannot create standard output file.');
|
||||
return;
|
||||
}
|
||||
|
||||
fs.open(errFile, 'w', (err, errFd) => {
|
||||
if (err) {
|
||||
log.error('Executor', err);
|
||||
reportFail('Cannot create standard error file.');
|
||||
return;
|
||||
}
|
||||
|
||||
privilegeHelpers.ensureMailtrainOwner(outFile, (err) => {
|
||||
if (err) {
|
||||
log.info('Executor', 'Cannot change owner of output file of process tid:%s.', tid)
|
||||
log.warn('Executor', 'Cannot change owner of output file of process tid:%s.', tid)
|
||||
}
|
||||
|
||||
privilegeHelpers.ensureMailtrainOwner(errFile, (err) => {
|
||||
if (err) {
|
||||
log.info('Executor', 'Cannot change owner of error output file of process tid:%s.', tid)
|
||||
log.warn('Executor', 'Cannot change owner of error output file of process tid:%s.', tid)
|
||||
}
|
||||
|
||||
const options = {
|
||||
|
@ -45,7 +55,16 @@ function spawnProcess(tid, executable, args, outFile, errFile, cwd, uid, gid) {
|
|||
gid
|
||||
};
|
||||
|
||||
const child = fork(executable, args, options);
|
||||
let child;
|
||||
|
||||
try {
|
||||
child = fork(executable, args, options);
|
||||
} catch (err) {
|
||||
log.error('Executor', 'Cannot start process with tid:%s.', tid);
|
||||
reportFail('Cannot start process.');
|
||||
return;
|
||||
}
|
||||
|
||||
const pid = child.pid;
|
||||
processes[tid] = child;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue