このエラーは、Kernel Hook Module (KHM)をアンロードできない場合に発生します。
KHMは、リアルタイム検索を実行するためにOSのシステムコールに割り込みます。
splxサービス(ServerProtect for Linux のサービス) よりも後に起動したサービスによって
同じシステムコールへの競合が発生している場合、そのサービスを停止してからsplxサービスを
停止しないと、KHMがアンロードできずに上記のようなエラーが発生します。
ただし、splxサービスの停止が一時的なものであれば上記のエラーが発生しても特に問題はありません。
この現象を改善するには、下記のいずれかの対処法を行う必要があります。
対処法1:splxサービス停止前に競合するサービスを停止する
splxサービスと競合が発生しているサービスを探し、splxサービスを停止させる前に競合するサービスを停止させるようにします。
弊社でsplxサービスとの競合が確認されているのは、以下の製品となります。
- Trend Micro InterScan VirusWall for Unix (sendmail サービス)
- Trend Micro InterScan Web Security Suite (ISFtp サービス)
- 富士通 Interstage (FJSVsvmon サービス)
splxサービスが停止するタイミングは、以下の通りです。
- /etc/rc.d/init.d/splx stop コマンドによってサービスを手動で停止する時。
- ServerProtect for Linux をアンインストールする時。
- ServerProtect for Linux をアップグレードする時。
- カーネルのアップグレード等で KHM を差し替える時。
- OSをシャットダウンする時。(この時にはKHMがアンロードされないままシャットダウンされる為、影響はありません。)
対処法2:splxサービスの起動順序を競合サービスよりも後に設定する
splxサービスの起動スクリプトファイルを変更し、競合サービスよりも後に起動させます。
ランレベルが3の時、splxサービスの起動スクリプトはシンボリックリンク「/etc/rc3.d/S01splx」によって起動します。(このSxxは起動時の優先度を示しています。)
例:sendmailサービスより後にsplxサービスを起動させたい場合
# mv S01splx S91splx
注意:splxサービスの起動順序を遅らせると、splxサービスが起動する前にウイルスの進入を
許してしまう危険性を伴います。競合サービスおよびsplxサービスは可能な限り他のサービス
よりも早く起動するように設定される事を推奨します。
例:競合サービスがabcで、初期設定の起動順序が90の場合
# mv S90abc S01abc
# mv S01splx S02splx
※ InterScan Web Security Suite (IWSS)の場合、設定変更やパターンアップデートによってサービスが再起動される仕様のため、対処法2を行っても現象が発生する可能性があります。
IWSSのように、OS起動後でも自動的にサービスの再起動が行われる製品の場合、対処法1のみが有効となります。