BLOGTIMES
2018/10/20

systemd を cron 代わりに使う

  systemmanagemant  centos7 
このエントリーをはてなブックマークに追加

systemd にはタイマーという機能があって、これが cron の代替になるというのでちょっと試してみました。

今回は簡単なものということで、先日インストールした Splash の GC を1時間に1回呼出すようにしてみました。

.service を作る

Splash の GC は HTTP で指定された URL に POST を行うことで実施できるので、service ファイルは以下のような感じになります。
このサービスは daemon ではないので、一度実行したら終了する Type=oneshot にしておきます。

/etc/systemd/system/splash-gc.service

[Unit] Description = splash GC [Service] Type = oneshot ExecStart = /usr/bin/curl -s -X POST http://localhost:8050/_gc User = hoge SyslogIdentifier=splash-gc [Install] WantedBy = multi-user.target

.timer を作る

次に .service に対応する .timer を作ります。
OnCalendar で起動時刻を、RandomizedDelaySec でランダムウェイトを指定しています。

/etc/systemd/system/splash-gc.timer

[Unit] Description = splash GC timer [Timer] RandomizedDelaySec = 30s OnCalendar = *-*-* *:00:00 Unit = splash-gc.service [Install] WantedBy = multi-user.target,timers.target

あとはタイマーを有効化して、list-timers で確認したときに次回の起動時刻が表示されていれば設定は完了です。

# systemd enable splash-gc.timer # systemd start splash-gc.timer # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2018-10-20 23:00:00 JST 20min left n/a n/a splash-gc.timer splash-gc.service ・・・・・・・

設定は明らかに cron の方がシンプルなので、ちょっと微妙ですかね。。。。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10518
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン