
【Linux】一時的なタスクを登録する:systemd-runコマンド
systemd-runコマンドの基本的な使い方、主要なオプション、具体的な使用例、および設定されたタスクの確認・削除方法について解説します。
systemd-runコマンドの概要
Linuxシステムの管理において、特定の時間に一度だけ実行したいタスクや、一時的に定期実行させたいタスクが存在することがあります。通常、こうしたタスクをスケジュールするためには.service
ファイルや.timer
ファイルを作成する必要がありますが、これらの設定は手間がかかることがあります。さらに、サーバの再起動時にこれらの設定が自動的に消えても構わない場合もあります。
そんな時に便利なのが「systemd-run」コマンドです。systemd-runは、一時的なタスクを簡単にスケジュールするためのコマンドであり、メモリ上にジョブの実行スケジュールを確保します。そのため、ジョブはLinuxの起動中のみ実行され、再起動すると設定は消えてしまいます。このコマンドを使用することで、簡単かつ迅速に一時的なタスクを管理することができます。

【構文】systemd-run [オプション] コマンド [引数]
主なオプションと説明
オプション | 説明 |
---|---|
--unit=Unit名 | ユニット名を指定します。 |
--on-active=時間 | 指定した時間が経過した後にコマンドを実行します。 |
--on-unit-active=時間 | ユニットがアクティブになってから指定した時間後にコマンドを実行します。 |
systemd-runコマンドの例
以下は、Unit名をtest
とし、起動してから5分後に60秒間隔でps
コマンドを実行する一時的なタスクを登録する例です。
パスワードの入力が求められたら、パスワードを入力します。
user01@ubuntu-vm:~$ systemd-run --unit=test --on-active=5m --on-unit-active=60s ps
Running timer as unit: test.timer
Will run service as unit: test.service
設定されているタイマーの確認
設定したタイマーを確認するには、systemctl
コマンドにlist-timers
オブジェクトを指定します。
user01@ubuntu-vm:~$ systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2024-07-15 13:37:37 JST 4min 27s left n/a n/a test.timer test.service
Mon 2024-07-15 14:33:18 JST 1h 0min left Mon 2024-07-15 13:32:17 JST 52s ago anacron.timer anacron.service
(省略)
Sun 2024-07-21 03:10:53 JST 5 days left Sun 2024-07-14 03:10:24 JST 1 day 10h ago e2scrub_all.timer e2scrub_all.service
Mon 2024-07-22 01:08:35 JST 6 days left Mon 2024-07-15 01:33:26 JST 11h ago fstrim.timer fstrim.service
ers listed.
Pass --all to see loaded but inactive timers, too.
表示を終了させるには、「q」キーを押します。
systemd-runコマンドで設定したスケジュールの削除
一時的に設定したジョブを削除するには、systemctl
コマンドのstopサブコマンドを使用し、「Unit名.timer」を指定します。例えば、ユニット名がtest
の場合、「test.timer」を指定します。
パスワードの入力が求められたら、パスワードを入力します。
user01@ubuntu-vm:~$ systemctl stop test.timer
まとめ
systemd-runコマンドは、一時的に定期実行するタスクを簡単に登録するための便利なツールです。以下にまとめます。
オプション | 説明 |
---|---|
--unit=Unit名 | ユニット名を指定します。 |
--on-active=時間 | 指定した時間が経過した後にコマンドを実行します。 |
--on-unit-active=時間 | ユニットがアクティブになってから指定した時間後にコマンドを実行します。 |
使用例として、起動してから5分後に60秒間隔でps
コマンドを実行する一時的なタスクを登録する方法を示しました。また、設定したタイマーの確認方法や、登録したスケジュールの削除方法も解説しました。これにより、systemd-runコマンドを活用して、効率的に一時的なタスクを管理する方法が理解できるでしょう。