すこぶる.net

技術系備忘録など

Linux

Linuxでパッケージアップデート後に再起動が必要なプロセスを確認する方法

投稿日:2018年1月12日 更新日:

概要

Linuxでパッケージをアップデートしたあとにプロセスを再起動しないといかないものがあります。
例えば、openssl をアップデートしたあとは、Apache のプロセスを再起動するということが必要になります。

サーバマシン自体をリブートしてしまうのが手っ取り早いとは思いますが、
冗長化していようと、サービスを提供しているサーバではそうそうリブートすることは難しいと思います。

そんなとき最小限かつ、しっかりと必要なプロセスを再起動する方法をご紹介したいと思います。

解決方法

Debian系

上記は ubuntu (Debian系)における確認方法です。 ※Ubuntu 16.04.3 LTS を使用しています
丁寧に再起動方法も記載されています。

Redhat系

上記は CentOS (Redhat系)における確認方法です。 ※ CentOS 7 を使用しています。
needs-restarting コマンドには、sオプションというものがあります。
man コマンドで見てみると、「List the affected systemd services only.」と書かれています。
つまり、sオプションを使用すると 再起動が必要なプロセスのうち、systemd で管理されているサービスのみを表示できます。
逆に service で管理されている場合は sオプションをつけると見ることができないということになります。

また、rオプションをつけるとサーバ(OS)のリブートが必要なプロセスが出てくるためそちらも確認すると良いと思います。
カーネルのアップデートになると思うので気づくと思いますが大量にアップデートがかかった場合見落とすこともあるので確認したほうがいいです。

 

最後に

特にセキュリティ関連でパッケージのアップデートを行うことが多いと思います。
しかし、パッケージのアップデートをしたからといってプロセスの再起動を行わないと反映されていない状態となり問題は解決されません。
今回紹介したcheckrestartコマンドneeds-restartingコマンドを使用して安全なサーバ運用を行っていただければと思います。

 

 

 

 

 

 

 

-Linux
-,

執筆者:

関連記事

【direnv】ディレクトリごとに環境変数を管理する

direnv を使うメリット ディレクトリごとに環境変数を変えたい場合があります。 例えば、複数のプロジェクト(サービス)を管理しているときなどです。 もう少し具体的にいうと、 Terraform な …

htpasswdコマンドでベーシック認証のパスワードを8文字以上に設定する方法

概要 htpasswdコマンドを使用してベーシック認証のパスワードを8文字以上で作成する際には注意が必要です。

普通に8文字のパスワー …

Firewalldで特定IPからの接続に制限する

概要 CentOS7 や Ubuntu を使用している場合、Firewalld を使用する方が多いと思います。 iptables に慣れている方は最初設定の簡単さや逆にうまくいかない設定があったりと戸 …

curlコマンドで接続時間を確認する方法

概要 Linux を使用している場合、Webサーバへの接続確認に curl コマンドを使用すること場面が多いと思います。 そんなときに、名前解決にかかる時間、サーバとの接続にかかる時間を確認する方法を …