外部OpenSearchを使うFessのsystemd起動条件が改善される

OpenSearchを別ホストやコンテナーで運用していても、Fessのsystemdサービスを起動できるようにする変更がマージされました。ローカルのopensearch.serviceが存在しないだけで、Fessのプロセスが起動前に止まる問題への対応です。

起動依存関係の変更

従来のサービス定義はRequires=opensearch.serviceを指定していました。このユニットがローカルにない場合、systemctl start fess.serviceが「Unit opensearch.service not found」で失敗し、Fessは起動しません。

修正後はWants=opensearch.serviceへ変更します。After=opensearch.serviceは維持されるため、ローカルにOpenSearchのユニットがある構成では、その起動を要求し、順序を付けます。外部接続構成では、ローカルユニットがなくてもFessの起動が阻止されなくなります。

この変更に新しい接続先の初期値はありません。利用中の検索エンジンに合わせた既存の設定を使います。

運用時に確認すること

導入後はサービスの状態とFessログを確認します。

systemctl status fess.service
journalctl -u fess.service

ローカルOpenSearchの停止・再起動に合わせてFessも停止・再起動させる従来の依存関係は弱まります。Fessは動作を続け、自身のHTTPクライアントで再接続します。監視ではFessのプロセス状態だけでなく、検索エンジンへの疎通や実際の検索処理も確認してください。

追加修正#3628では、debの設定処理で、systemdが稼働しsystemctlがある場合にsystemctl daemon-reloadを実行します。更新済みユニットがディスクにあっても旧定義が読み込まれたままになる問題を防ぎます。systemdが動いていないコンテナーやinit.dだけの環境では実行しません。インストール直後にFessを自動起動する変更ではなく、接続先の確認も別途必要です。

#3602単体の確認はスタブを使ったサービス起動試験でしたが、#3628ではDebian 12のsystemd環境で15.8からのdeb更新後の依存関係とNeedDaemonReloadを検証しています。Fess本体の検索動作を確認した試験ではないため、導入先でもサービス定義と実際の検索を確認してください。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です