
needrestart は、ライブラリのアップグレード後に再起動が必要なデーモンを チェックします。これは debian-goodies パッケージの checkrestart に 触発されたものです。
ex/ ディレクトリには、(apt と dpkg で使用するための)フックスクリプトがいくつか
あります。スクリプトは、パッケージのインストール/アップグレード後に
needrestart を呼び出します。
needrestart は GNU/Linux で動作します。GNU/kFreeBSD では機能が
制限されます。/proc/<pid>/maps が削除されたファイルリンクを表示しないためです。
needrestart は systemd をサポートしますが、必須ではありません(v0.6 以降で利用可能)。 systemd を使用する場合は、libpam-systemd も使用してください。needrestart が systemd を 検出すると、libpam-systemd が使用されているとみなし、cgroup 名に基づいてプロセスが ユーザーセッションとデーモンのどちらに属するかを判断します。libpam-systemd を使用しない 場合は、needrestart.conf 内で $nrconf{has_pam_systemd} を 0 に 設定してください。
systemd が利用できない場合、またはサービス名を返さない場合、needrestart は フックを使用して対応する System V init スクリプトを特定します。同梱の フックは以下のパッケージマネージャーをサポートしています。
dpkg
rpm
pacman
service コマンドは、従来の System V init スクリプトを実行するために使用されます。
needrestart は、ユーザーインターフェースを提供する perl パッケージに基づく モジュール方式を採用しています。以下のフロントエンドが同梱されています。
needrestart 0.8 は、古くなったカーネルを検出する機能を追加しました。needrestart 3.5 以降では、カーネルイメージのファイル名をフィルタリングできます( Raspberry Pi で必要)。
needrestart 3.0 では、Intel CPU 向けの プロセッサマイクロコード更新検出 機能 が追加されました。needrestart 3.5 以降では、 AMD CPU サポートが追加されています。
needrestart 0.8 は、インタープリタースキャン機能 を追加しました。 インタープリターはバイナリ(共有)オブジェクトをマップするだけでなく、プレーンテキストの ソースファイルも使用します。インタープリター検出は、セキュリティ上の問題を含む可能性が あるため、古いソースファイルもチェックしようとします。これはあくまでヒューリスティック であり、関連するすべてのソースファイルを検出できるとは限りません。以下のインタープリター スキャナーが同梱されています。
needrestart 2.1 は、いくつかのコンテナ技術を検出します。プロセスが コンテナの一部である場合、Sys-V/systemd を使用して再起動できない可能性が あります。
コンテナの検出と再起動を実装する特別な perl パッケージ(NeedRestart::CONT::*)が あります。以下のコンテナ検出器が同梱されて います。
needrestart は、バッチモード で実行して、結果を他のプログラムや スクリプト内で使用できます。
nagios プラグインモード も利用できます。