systemd-run --on-calendar ....
「これで正しいファイルに置き換えました」を使用して.timer
システムジョブを作成しましたが、.service
以前のジョブを削除することはできません。停止して無効にすることはできますが、呼び出すと、systemctl list-timers
まだランダムな名前で表示されますrun-r0d0dc22...
。また、その文書が見つかりまし.timer
たが見つかりませんでした。
答え1
一時ファイルは最終的に表示され、/run/user/
ユーザーがログオフ(使用)するか再起動(再作成)するまで削除されないようですsystemd-run --user
。/run
たとえば、特定の時間に一度だけ実行されるコマンドを生成する場合:
systemd-run --user --on-calendar '2017-08-12 14:46' /bin/bash -c 'echo done >/tmp/done'
次の場所からファイルを入手できます/run
。
/run/user/1000/systemd/user/run-28810.service
/run/user/1000/systemd/user/run-28810.service.d/50-Description.conf
/run/user/1000/systemd/user/run-28810.service.d/50-ExecStart.conf
/run/user/1000/systemd/user/run-28810.timer
/run/user/1000/systemd/user/run-28810.timer.d/50-Description.conf
/run/user/1000/systemd/user/run-28810.timer.d/50-OnCalendar.conf
--user
以外のファイルの場合/run/systemd/system/
ファイルを削除しsystemctl [--user] daemon-reload
て次の操作を行うと、list-timers
デバイス名のみが実行された場合は最後の履歴とともに表示されます。この情報はsystemdの内部状態またはログファイルに保存できます。
答え2
許可された回答(ファイルを削除してaを実行)が機能しませんでした。代わりに;を使用してタイマーを削除daemon-reload
できました。systemd --user stop unitfile
ただし、ユニットファイルを使用したため異なる場合があります。
私の質問「Systemd as at
replacement」が「まったく同じ」とマークされているので、削除して次のように投稿します。
systemdなどを使いたいですat
。シェルスクリプトを実行するユニットファイルを作成しましたが(「%I」渡し)、スケジュールに問題があります。これにより、実行後にタイマーを削除するのではなく、明日実行するようにタイマーをアクティブに保ちます。~/.config/systemd/user/[email protected]
systemd-run --user --unit say@'test message' --on-calendar='13:54'
今日、特定の時間に一度単位ファイルを実行するようにsystemdに指示する方法は?一時タイマーを自動的にクリーンアップして後でクリーンアップするsystemd --user stop say@'test message'
必要がないようにするソリューションが必要です。
A: 完全な日付を指定する必要があります。だから- ... --on-calendar='2018-04-16 13:54:00'
。これもそれ自体正しく整理されているようです。
答え3
しなければならない
systemctl --user stop Remove_Me.{service,timer}
systemd バージョン 245 を使用して一時タイマー デバイスを削除します。
この{service,timer}
部分はBash機能です。支柱の拡張
イリダンの答えランニングはsystemctl --user stop Remove_Me
私には適していません。私はこれを得ます:
警告:Remove_Me.serviceを停止していますが、次の機能を使用して引き続き有効にできます。Remove_Me.timer
そしてそのデバイスはまだ表示されますsystemctl --user list-timers *Remove*
。
読むヤヨンの答え、.timer、および.serviceファイルを/run/user/1000/systemd/transient/
。ファイルを削除して操作を実行した後でも、出力はsystemctl --user daemon-reload
まだ残ります。Remove_Me.timer
Remove_Me.service
systemctl --user list-timers
単位を読んで遅いタイマーをなくしました
systemd-run --user --on-calendar=2025-01-01 -u "Remove_Me" touch ~/test_file
それから削除します
systemctl --user stop Remove_Me.{service,timer}
これでsystemctl --user list-timers *Remove*
単位は表示されません。