미래의 특정 시간에 Guix에서 쉘 명령을 실행하고 싶습니다. 내 생각은 그 명령을 사용하는 것이었지만 at
Guix에서는 사용할 수 없는 것 같습니다.
내 소원의 명령형 성격은 어느 정도 Guix의 선언적 철학에 어긋나기 때문에 내 기대를 (간접적으로) at
사용할 수 없습니다.
예를 들어, at
require atrun
또는 atd
is 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
mcron
posix 또는 guile(scheme) 스크립트를 통해 사용한 다음 실행해야 합니다 mcron &
. 설치하거나 cron
루트 로 설치하십시오 crond
.crontab
스크립트는 에 있습니다 ~/.config/cron
.
Posix 스크립트에는 .vixie
또는 .vix
확장자가 있어야 합니다.
.guile
Guile 스크립트에는 또는 확장자가 있어야 합니다 .gle
.