将来の特定の時間にGuixでシェルコマンドを実行したいと思います。私の考えは、そのコマンドを使用することでしたが、at
Guixでは使用できないようです。
私の願いの命令型の性格はある程度Guixの宣言的哲学に反するので、私の期待を(間接的に)使用することはat
できません。
たとえば、at
requireatrun
またはatd
is running は Guix の作業方法に合わない場合があります。
特定の時間にコマンドを実行するためにまだ見つかっていないGuixの特定の方法はありますか?
今は1つしかできず、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
が、動作します。
2 つの潜在的な改善を確認できます。
job
最初の引数としてUnixタイムスタンプを返す関数が必要なようです。したがって、必要な正確なタイムスタンプを提供することは効果があると思います。これにより、キリング部分が重複する可能性があります。mcron
手動で呼び出す代わりにマクロン訪問サービス
最後に、私が知って検索した用語でmcron
代替図またはatd
明示的に言及することは価値があるでしょう。atrun
何らかの理由で、cronが私が探しているものを大まかに計算できるはずだとは思わない。おそらくパッチを書くと思います。
答え1
mcron
posixまたはguile(scheme)スクリプトを介して使用してから実行する必要がありますmcron &
。インストールするか、cron
ルートとしてインストールしますcrond
。crontab
スクリプトはにあります ~/.config/cron
。
Posixスクリプトには.vixie
または.vix
拡張子が必要です。
.guile
Guileスクリプトには、または拡張子が必要です.gle
。