Debianには debian-goodies というパッケージに checkrestart というコマンドがあって
パッケージの更新をしたあとで再起動が必要なサービスを調べられる。
で、CentOS で同じようなものがないのかなぁ、と探していたところ、
こんなツイートを見つけた。
どうやら、yum-utils というパッケージに needs-restarting という同種のコマンドがあるようだ。
ということで、OpenSSL のパッチ当ての時に確認してみた。
$ sudo yum install yum-utilsでインストールし、
$ sudo needs-restartingとしてみたけど、何も出ない。(あたりまえ)
$ sudo yum clean allでアップデートした直後に実行してみた。
$ sudo yum update openssl
$ sudo needs-restartingこんな感じで表示された。
1176 : ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
1158 : /usr/sbin/sshd
1525 : /usr/sbin/httpd
1418 : /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
1491 : /usr/sbin/httpd
1533 : /usr/sbin/httpd
1472 : sendmail: accepting connections
1530 : /usr/sbin/httpd
1479 : sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
1528 : /usr/sbin/httpd
1532 : /usr/sbin/httpd
$ sudo service sendmail restart一つずつサービスを再起動して、確認してみた。
$ sudo service mysqld restart
$ sudo service httpd restart
$ sudo service ntpd restart
$ sudo service sshd restart
$ sudo service sendmail restartという感じで関連するサービスの再起動のみで、サーバ再起動をせずに済ませることができる。
$ sudo needs-restarting
1176 : ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
1158 : /usr/sbin/sshd
1491 : /usr/sbin/httpd
1418 : /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
1525 : /usr/sbin/httpd
1533 : /usr/sbin/httpd
1532 : /usr/sbin/httpd
1530 : /usr/sbin/httpd
1528 : /usr/sbin/httpd
$ sudo service mysqld restart
$ sudo needs-restarting
1176 : ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
1158 : /usr/sbin/sshd
1491 : /usr/sbin/httpd
1525 : /usr/sbin/httpd
1533 : /usr/sbin/httpd
1532 : /usr/sbin/httpd
1530 : /usr/sbin/httpd
1528 : /usr/sbin/httpd
$ sudo service httpd restart
$ sudo needs-restarting
1176 : ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
1158 : /usr/sbin/sshd
$ sudo service ntpd restart
$ sudo needs-restarting
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
1158 : /usr/sbin/sshd
$ sudo service sshd restart
$ sudo needs-restarting
1831 : sshd: ec2-user@pts/0
1829 : sshd: ec2-user [priv]
(参考)
[TriLUG] Heartbleed SSL vuln: regenerate your ssh host keys?
Unix News Tutorials Events and Stuff: Update on CVE-2014-0160, aka "Heartbleed"