概要
Rocky Linux release 9.2にてログ監視ツールswatchを、CentOS7,8系での方法で導入しようとするとエラーが表示されてサービスが実行できないため、その対処方法を書きました。
/etc/rc.d/init.d/functionsのエラー
systemctl start swatch
を実行した時に次のようなエラーが表示されます。
/etc/rc.d/init.d/swatch: line 9: /etc/rc.d/init.d/functions: No such file or directory
この場合、initscriptsがインストールされていないことが原因なのでインストールします。
yum -y install initscripts
Failed with result 'exit-code'のエラー
さらに次のようなエラーが発生することがあります。
Starting swatch (via systemctl): Job for swatch.service failed because the control process exited with error code.
See "systemctl status swatch.service" and "journalctl -xeu swatch.service" for details.
[FAILED]
指示通り、 journalctl -xeu swatch.service
すると次のようなエラーが確認できます。
swatch.service: Failed with result 'exit-code'.
Failed to start SYSV: swatch start/stopscript.
これだけでは原因がわからなかったのですが、vi /var/log/swatch.log
を確認すると、/etc/rc.d/init.d/swatch: line 25: swatch: command not found
と記録されていました。
どうやらRocky Linux9.2では、swatchの実行ファイル名が"swatchdog"に名前変更されていることで、既存のスクリプトが動かないようです。
vi /etc/rc.d/init.d/swatch
でスクリプトを開き、25行目付近の"swatch"を"swatchdog"に修正します。
swatchdog --config-file $conf --tail-file $WATCHLOG \
--script-dir=/tmp --awk-field-syntax --use-cpan-file-tail --daemon \
--pid-file /var/run/swatch_$pno.pid \
>> /var/log/swatch/swatch.log 2>&1
保存して、systemctl start swatch
を実行すると正しくサービスが起動します。
おしまい