needs-restarting

某所の某 CentOS7 なサーバー、たまに何も考えずにログインしては yum update -y して、更にたまに reboot してるけどこれもはや cron で自動でよいのではと思ったのでそうする。

そういえば、アップデート内容によっては再起動が必要かを調べてくれるツールがあったなあぼんやり思い出した。
調べてみたら needs-restarting だった。そのままだ。

yum-utils に入っているらしいので、それでいれる。

$ sudo yum search needs-restarting
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
============================================================================================================= Matched: needs-restarting =============================================================================================================
dnf-plugins-core.noarch : Core Plugins for DNF
python2-dnf-plugins-core.noarch : Core Plugins for DNF
yum-utils.noarch : Utilities based around the yum package manager

$ sudo yum install yum-utils
...
$ needs-restarting --help
Usage:
    needs-restarting: Report a list of process ids of programs that started
                    running before they or some component they use were updated.

Options:
  -h, --help        show this help message and exit
  -u, --useronly    show processes for my userid only
  -r, --reboothint  only report whether a full reboot is required (returns 1)
                    or not (returns 0)
  -s, --services    list the affected systemd services only

フルリブートが必要なのか、特定のサービスだけでいいのか、をオプションで切り替えられる模様。

こうしておいた。

$ cat /etc/cron.daily/yum
#!/bin/sh
yum update -y

$ cat /etc/cron.daily/needs-restarting-reboothint
#!/bin/sh
needs-restarting --reboothint

$ cat /etc/cron.daily/needs-restarting-services
#!/bin/sh
needs-restarting --services

確認した結果、全自動で再起動するようにしてもいいけど、何かが何かに引っかかって立ち上がらなくなったりして、まったく気付かないというのは少し怖いので、とりあえずは通知するだけにしておく。
cron はすでに通知…、というか MAILTO にかかれていて、本文に色々書かれていたので、このままで OK ということにしておく。

前後の記事

Prev: