CentOS7にClamAVをインストールして運用していて、初めて再起動した時に気づいたことです。
1 2 |
systemctl enable clamd.service # ネイティブなサービスじゃないのでchkconfig clamd onにリダイレクトされるけど・・ |
こんな感じで自動起動にしてサーバを再起動すると、
1 2 3 |
clamd: Starting Clam AntiVirus Daemon: ERROR: LOCAL: Socket file /var/run/clamav/clamd.sock could not be bound: No such file or directory clamd[1201]: LOCAL: Socket file /var/run/clamav/clamd.sock could not be bound: No such file or directory clamd: [失敗] |
/var/run/clamav/clamd.sock作れないよ!起動できない!助けて!ってログが出ます。
実はCentOS7になってから、/var/run/clamavはtmpファイルということでシャットダウン時に削除されるようですね。
(/var/run/clamav = ClamAVのLocakSocketのデフォルトディレクトリ)
なので、起動時にディレクトリを作るよう設定します。
設定ファイルは/etc/tmpfiles.dの中に作ります。
1 2 3 4 |
vi /etc/tmpfiles.d/clamd.conf # Clamd dir create D /var/run/clamav 0755 root root - |
※ClamAVをroot以外で動かしている 方は、パーミッション・所有者を正しく設定してください。
これで起動時に自動でディレクトリが作成され、正常に動作するはずです。
※下記方法で、起動スクリプトをいじってもいいですね!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
vi /etc/rc.d/init.d/clamd start(){ echo -n "Starting Clam AntiVirus Daemon: " ### ↓ClamAV起動前にディレクトリ作成 mkdir /var/run/clamav > /dev/null 2>&1 daemon clamd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd return $RETVAL } |
どうぞお好きなほうで!