cron 작업이 종료되기 전에 분기/exec()됩니다. 아이의 표준 출력은 어떻게 되나요?

cron 작업이 종료되기 전에 분기/exec()됩니다. 아이의 표준 출력은 어떻게 되나요?

일반적으로 크론 작업은 나에게 이메일로 전송 stdout됩니다 ( 다음의 설정 에 stderr따라).MAILTOcrontab작업이 완료되면.

내 직업이 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…)이 포함되어 있습니다.

관련 정보