4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アウトプットを習慣付ける(@sugichan55)Advent Calendar 2023

Day 5

systemdのtimerで定期実行しよう!

Last updated at Posted at 2023-12-04

systemdのtimerで定期実行しよう!

きっかけ

  • 古いサーバを解約してAWSに集約した後で定期実行について調べた時にcrondがプリインストールされていなかった
  • 非推奨というわけではなかったがsystemdのtimerを推奨しているようだったので、内容を調べた備忘録を記載する

Systemdのtimerってなに?

  • systemdの元で動く、定期実行する仕組み
    • systemdはLinuxのほぼすべてのディストリビューションに含まれるようになった
  • cronと同様に設定ファイルを置くことで定期実行を行ってくれる

設定方法

※ 以下の設定はAmazon Linux 2023を用いて実施している

  • ec2-userで朝6時にPythonのスクリプトを実行する例を記載します

設定ファイルの作成

/etc/systemd/systemxxx.servicexxx.timerを作成します

xxx.serivceとxxx.timerのxxxの部分は同じ名前にしましょう

sample.service
[Unit]
Description=Run sample.py script as ec2-user

[Service]
Type=oneshot
User=ec2-user
ExecStart=/usr/bin/python /home/ec2-user/source/sample.py

[Install]
WantedBy=multi-user.target

それぞれの設定値について

名前 説明
Description そのユニットが何をするものなのか記載するところ
Type サービスの実行タイプ
oneshotは一度だけ実行するタスクに適している。
その他のオプションについては別途まとめます
User どのユーザで実行するか選択する
ExecStart このtimerで何を実行するのか絶対パスで記述
WantedBy 手動での起動が前提の場合は不要です。
APIなどネットワークに接続する必要があるときは書いたほうが無難でしょう
sample.timer
[Unit]
Description=Timer for sample.py Script

[Timer]
OnCalendar=*-*-* 06:00:00
Persistent=true

[Install]
WantedBy=timers.target
名前 説明
Description そのユニットが何をするものなのか記載するところ
OnCalendar 実行するタイミングを記載します。
詳しい記載内容は別途
Persistent 指定したタイミングで実行されなかった場合に、システム再起動後に時間外でも動かす必要がある場合Trueに設定します。
WantedBy cronの代用として使うため記述します。
時間になったら動くようにするために必要な設定です。

設定の有効化

  • サービス自動起動有効
    sudo systemctl enable sample.timer
  • サービスの起動
    sudo systemctl start sample.timer

起動確認

  • 再起動後など、自動起動されることを確認
    sudo systemctl is-enabled sample.timer
  • ステータスの確認
    sudo systemctl status sample.timer
  • タイマー設定の一覧で確認
    sudo systemctl list-timers

ここまで確認すれば安心ですね👍

次回予告

明日の記事は.serviceや.timerの中身について詳しく書いていこうと思います!

参考文献

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?