CentOSでyumコマンドやrpmコマンドでパッケージを更新した後の更新内容の適用に関してです。
下記のようにパッケージの種類によっては更新後に別途手動で再起動する必要があります。
※目次をクリックすると目次の下部にコンテンツが表示されます。
アプリケーション
ユーザースペースのアプリケーションが更新された場合は、システムにあるアプリケーションのすべてのインスタンスが停止し、プログラムが再起動され、更新バージョンが使用されるようになります。
カーネル
カーネルが更新された場合は、更新バージョンはシステムの再起動後にはじめて使用できるようになります。
共有ライブラリ
・通常、共有ライブラリを使用しているアプリケーションは、アプリケーションが初期化されるときに共有コードを読み込みます。
そのため共有ライブラリを更新した場合は、更新されたライブラリを使用しているすべてのアプリケーションは再起動する必要があります。
・特定のライブラリにリンクしている実行中のアプリケーションを判別するには、以下コマンドを実行します。
lsof 共有ライブラリのパス
例)ホストのアクセス制御にTCP Wrapperを使用する実行中のプログラムの一覧
そのため共有ライブラリを更新した場合は、更新されたライブラリを使用しているすべてのアプリケーションは再起動する必要があります。
・特定のライブラリにリンクしている実行中のアプリケーションを判別するには、以下コマンドを実行します。
lsof 共有ライブラリのパス
例)ホストのアクセス制御にTCP Wrapperを使用する実行中のプログラムの一覧
# lsof /lib64/libwrap.so* COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1154 root mem REG 253,0 40792 261321 /lib64/libwrap.so.0.7.6 sshd 1173 user mem REG 253,0 40792 261321 /lib64/libwrap.so.0.7.6 sshd 9488 root mem REG 253,0 40792 261321 /lib64/libwrap.so.0.7.6
SysVサービス
SysVサービスはブート中に起動される永続的なサーバープログラムで、sshd、vsftpd、xinetdなどがあります。
通常、これらのプログラムはマシンが稼働している間はメモリ内に残るので、パッケージのアップグレード後にはそれぞれのサービスを下記コマンドなどで再起動する必要があります。
/sbin/service restart
通常、これらのプログラムはマシンが稼働している間はメモリ内に残るので、パッケージのアップグレード後にはそれぞれのサービスを下記コマンドなどで再起動する必要があります。
/sbin/service restart
xinetdサービスによって管理されるサービス
Telnet、IMAP、POP3などのxinetdサービスによって管理されているサービスは、アクティブな接続があるときにのみ実行されます。
これらのサービスの新規インスタンスは、新しい要求が受信されるたびにxinetdが起動されるので、アップグレード後に発生する接続は更新ソフトウェアによって処理されます。
ただし、xinetdが制御するサービスのアップグレード時にアクティブな接続がある場合、それらは古いバージョンのソフトウェアによって処理されるので注意します。
xinetdが制御する特定サービスの古いインスタンスを停止するには、そのサービスのパッケージをアップグレードしてから、現在実行中のすべてのプロセスを停止します。
プロセスが実行中であるかどうかを判別するにはps、pgrepコマンドなどを使用し、kill、killallコマンドなどを使用してサービスの現在のインスタンスを停止します。
これらのサービスの新規インスタンスは、新しい要求が受信されるたびにxinetdが起動されるので、アップグレード後に発生する接続は更新ソフトウェアによって処理されます。
ただし、xinetdが制御するサービスのアップグレード時にアクティブな接続がある場合、それらは古いバージョンのソフトウェアによって処理されるので注意します。
xinetdが制御する特定サービスの古いインスタンスを停止するには、そのサービスのパッケージをアップグレードしてから、現在実行中のすべてのプロセスを停止します。
プロセスが実行中であるかどうかを判別するにはps、pgrepコマンドなどを使用し、kill、killallコマンドなどを使用してサービスの現在のインスタンスを停止します。