특정 시간에 시스템 알림을 받으시겠습니까?

특정 시간에 시스템 알림을 받으시겠습니까?

Linux나 FreeBSD에서는 지정된 시간에 시스템으로부터 알림을 받을 수 있는 방법이 있습니까? 나는 Linux의 파일 시스템 이벤트에 대해 inotify가 수행하는 것과 비슷한 것을 생각하고 있습니다.

cron을 사용하는 방법도 있는데 프로그래밍적으로 호출할 수 있는 하위 인터페이스가 있는지 문의드립니다. 또한 cron이 이러한 작업을 수행하기 위한 "공식" Unix 인터페이스인지 알고 싶습니다.

답변1

나는 두 가지 낮은 수준의 인터페이스가 있다는 것을 알고 있습니다.

하나는 알림을 받고 싶은 순간까지 간단히 sleep()하는 것입니다. 수면 호출은 glibc에서 제공됩니다.

또 다른 방법은 Alarm() 시스템 호출입니다. 이를 통해 정의된 시간이 경과한 후 호출 프로세스에 SIGALRM을 보내야 함을 커널에 알릴 수 있습니다. 원하는 작업을 수행하기 전에 적절한 신호 처리기를 만들어야 할 가능성이 높습니다.

두 가지 방법 모두 알림을 받고 싶은 절대 시간을 설정할 수 없습니다. 대신, 현재 시간을 가져와 이를 사용하여 프로세스가 깨어나거나 경고를 받기 전에 대기해야 하는 시간을 계산해야 합니다.

참조(Linux): man 3 sleep;

관련 정보