0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS 7でrrdcachedを使う

Posted at

CentOS 7でrrdtoolに含まれている、rrdcachedを使う場合、
自動的にsystemd用のファイルを作成してくれないので、
自分で書くことになると思う。

とりあえず、以下の内容で動作させてみた。
何か突っ込みあれば、頂きたく。

[Unit]
Description=RRDTool Cache Daemon

[Service]
ExecStart=/usr/bin/rrdcached -l 0.0.0.0:42217 -w 300 -z 300 -f 600 -b /myhome/rrdfile -p /myhome/run/rrdcached.pid -F -j /myhome/journal
ExecStop=/bin/kill -12 ${MAINPID}
Restart=always
Type=forking

[Install]
WantedBy=multi-user.target

ExecStopで、意図的に-12(SIGUSR2)を渡している。

rrdcachedを一般的なSIGTERMで止めようとすると、なかなか終了してくれない事象にぶつかった。
このなかなか終了してくれない、という状態でshutdown -h nowとか、OSをシャットダウンしようとしても、
rrdcachedの終了に待たされて、OSがシャットダウンしない。

OSのシャットダウン時に、すぐに終了して欲しかったので、SIGUSR2を送り、即終了するようにした。

注意したいのは、起動オプションに、必ず-j パスを渡す必要がある点。

これを渡しておかないと、SIGUSR2ですぐに終了したとき、
まだ実際のファイルに書き込んでいないデータが、すべて消滅する。

-j パスを指定しておくと、rrdcachedは、受け取ったコマンドを
一旦ファイルに保存する。

次回起動時に、-j パスにファイルが存在する場合、
このファイルをいい感じに読み込み、処理を再開できる。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?