Guix에서 지정된 미래 시간에 일회성 명령을 실행하는 방법은 무엇입니까?

Guix에서 지정된 미래 시간에 일회성 명령을 실행하는 방법은 무엇입니까?

미래의 특정 시간에 Guix에서 쉘 명령을 실행하고 싶습니다. 내 생각은 그 명령을 사용하는 것이었지만 atGuix에서는 사용할 수 없는 것 같습니다.

내 소원의 명령형 성격은 어느 정도 Guix의 선언적 철학에 어긋나기 때문에 내 기대를 (간접적으로) at사용할 수 없습니다.

예를 들어, atrequire atrun또는 atdis running은 Guix의 작업 방식에 잘 맞지 않을 수 있습니다.

특정 시간에 명령을 실행하기 위해 아직 찾지 못한 Guix 특정 방법이 있습니까?

지금은 하나만 할 수 있고 sleep xxx; cmd지금은 그것만으로도 충분할 것입니다.


@GAD3R이 제안한 내용을 바탕으로 한 솔루션은 다음과 같습니다 mcron.시뮬레이션 방법에 대한 매뉴얼at

~/.config/hello.guile:

(job '(next-minute-from (current-time) '(25))
     (lambda () (system "echo $(date) >> ~/hello.txt")
                (kill (getppid) SIGINT)))

그런 다음 전화를 걸어보세요 mcron.

~/hello.txt이렇게 하면 25분 표시에 줄이 추가됩니다.

를 사용하는 것보다 더 많은 작업이 필요 at하지만 작동합니다.

두 가지 잠재적인 개선 사항을 확인할 수 있습니다.

  • job첫 번째 인수로 유닉스 타임스탬프를 반환하는 함수가 필요한 것 같습니다 . 따라서 필요한 정확한 타임스탬프를 제공하는 것이 효과가 있을 것이라고 생각합니다. 이로 인해 킬링 부분이 중복될 수도 있습니다.

  • mcron수동으로 호출하는 대신마크롱 방문 서비스

마지막으로, 내가 알고 검색한 용어로 mcron대체도 atd또는 를 명시적으로 언급하는 것이 가치가 있을 것입니다 . atrun어떤 이유에서든 cron이 내가 찾고 있는 것을 대략적으로 계산할 수 있어야 한다고 생각하지 않습니다. 아마 패치를 쓸 것 같아요.

답변1

mcronposix 또는 guile(scheme) 스크립트를 통해 사용한 다음 실행해야 합니다 mcron &. 설치하거나 cron루트 로 설치하십시오 crond.crontab

스크립트는 에 있습니다 ~/.config/cron.

Posix 스크립트에는 .vixie또는 .vix확장자가 있어야 합니다.

.guileGuile 스크립트에는 또는 확장자가 있어야 합니다 .gle.

GNU 문서: mcron

관련 정보