일반적으로 크론 작업은 나에게 이메일로 전송 stdout
됩니다 ( 다음의 설정 에 stderr
따라).MAILTO
crontab
작업이 완료되면.
내 직업이 fork
/ exec
(또는 간단히 ) 또는 다른 직업으로 시작되면 exec
어떻게 되나요 system("foo &")
?
- 하위 작업에 무슨 일이 일어나거나 일어날 예정입니까
stdout
?stderr
이메일로 받을 수 있나요?
가장 이상적인 결과는 부모와 자녀에게 별도의 이메일을 보내는 것이지만, 그건 내가 직접 준비해야 할 것 같습니다.
답변1
하위 프로세스는 상위 프로세스로부터 stdin, stdout 및 stderr을 상속받습니다. Fork와 exec는 cron 작업에서 일반적입니다(셸 스크립트에서 실행되는 모든 명령에는 fork/exec가 포함된다는 점을 고려하세요). 출력은 일반적으로 동일한 cron 이메일로 전송됩니다.
별도의 메일로 보내는 것은 매우 간단합니다. stdout/stderr을 mail
다음과 같이 파이프하면 됩니다.
#!/bin/sh
command-1 2>&1 | mail -s 'output 1' [email protected]
command-2 2>&1 | mail -s 'output 2' [email protected]
cron에 대한 유일한 이메일을 원하는 경우(비어 있는 동작이 아닌 경우)더 많은 유틸리티편의사항 ifne
( … | ifne mail -s…
)이 포함되어 있습니다.