@znz blog

ZnZ の memo のようなもの

debian-goodiesのcheckrestartで再起動が必要なプロセスを調べる

| Comments

ディストリビューション/パッケージマネージャー Advent Calendar 2013 の 12/6 のところが空いていたので、後から書いています。

この投稿は ディストリビューション/パッケージマネージャー Advent Calendar 2013 の6日目の記事です。

debian-goodies パッケージ

debian-goodies パッケージ には /usr/bin/ に複数のコマンドと /usr/sbin/checkrestart が入っています。

/usr/bin/ のコマンドについては uwabami さんの記事 を参照してください。

ここでは checkrestart を紹介します。

checkrestart

ライブラリのパッケージが更新されたときに、 特にセキュリティアップデートだと そのライブラリを使っているデーモンなども再起動したいと 思うことが多いと思います。

そういうときに checkrestart コマンドを使うと どのプロセスが置き換えられたライブラリを使っているか 調べることが出来ます。

使用例 1

例えば init スクリプトから起動している whoopsie の再起動が必要なときは以下のようなメッセージが出てくるので、 sudo /etc/init.d/whoopsie restart とか sudo service whoopsie restart とかで再起動すれば良いと思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo checkrestart
Found 1 processes using old versions of upgraded files
(1 distinct program)
(1 distinct packages)

Of these, 1 seem to contain init scripts which can be used to restart them:
The following packages seem to have init scripts that could be used
to restart them:
whoopsie:
        953     /usr/bin/whoopsie

These are the init scripts:
/etc/init.d/whoopsie restart

使用例 2

デーモン以外などで起動しているプロセスが使っているファイルが置き換えられた場合、以下のように対応する init script がわからないというメッセージが出てきます。

1
2
3
4
5
6
7
$ sudo checkrestart
Found 1 processes using old versions of upgraded files
(1 distinct program)
(1 distinct packages)
These processes do not seem to have an associated init script to restart them:
ruby1.8:
        906     /usr/bin/ruby1.8

こういうときは sudo ls -l /proc/906sudo cat -v /proc/906/cmdline などで対応するプログラムを調べて再起動します。

使用例 3

再起動が必要なものがみつからなかった場合は以下のようなメッセージが出てきます。

1
2
$ sudo checkrestart
Found 0 processes using old versions of upgraded files

まとめ

今回は debian-goodies の中から checkrestart を紹介しました。

Comments