![crontab은 멀티스레드인가요? [폐쇄]](https://linux55.com/image/17761/crontab%EC%9D%80%20%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%B8%EA%B0%80%EC%9A%94%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
crontab에 대한 자세한 정보를 어디서 찾을 수 있는지 몰라서 여기에 질문드립니다. crontab은 멀티스레드인가요? 어떻게 작동하나요?
답변1
아마도 그렇지 않을 것입니다. cron이 하는 일은 (간단히 말하면) 하나 또는 다른 작업을 실행할 시간이 될 때까지 모니터링하는 것입니다. 그렇다면 해당 작업을 실행하는 프로세스를 포크하고 작업이 완료되었는지 주기적으로 확인하여 정리할 수 있습니다. 그것.
이런 기다림에 MT를 사용할 수도 있지만 좀 과한 것 같아요. 와 함께wait()
/ waitpid()
가족 기능, 모든 아이들을 한 번에 볼 수 있습니다 (유치원 교사에게 좋습니다 :-D) . 그리고 차단하지 않고 볼 수 있기 때문에 다음 작업을 수행할 시간도 계속해서 찾을 수 있습니다. 그리고SIGCHLD
도 존재합니다.
답변2
Linux에는 여러 가지 cron 구현이 있습니다. 자신만의 크론 데몬 구현을 작성하려고 하지 않는 한, 그 중 어느 것이 멀티스레드인지 여부는 실제로 관련성이 있는 질문이 아니라고 생각합니다.
답변3
이러한 전통적인 UNIX 명령은 다중 스레드가 아닙니다. 그들은 포크 실행 모델을 사용합니다. cron의 경우 crontab 라인의 명령을 실행하기 위해 쉘을 분기합니다. cron 데몬은 하위 프로세스의 실행이 완료될 때까지 기다리지 않습니다. 하지만 IIRC는 하위 프로세스에서 보낸 특정 신호를 처리할 수 있습니다.