checkrestart(8) | debian-goodies | checkrestart(8) |
checkrestart - check which processes need to be restarted after an upgrade
checkrestart [ -hvpanmt ] [ -b blacklist_file ] [ -i package_name ] [ -e pid ]
The checkrestart program tries to determine if there are processes in the system that need to be restarted after a system upgrade. This is necessary since an upgrade will usually bring new system libraries and running processes will be still using the old versions of the libraries. In stable Debian GNU/Linux systems this is typically needed to eliminate a system exposure to a vulnerability which might have been fixed by upgrading a library which that process makes use of.
Consequently, checkrestart is sometimes used as an audit tool to find outdated versions of libraries in use, particularly after security upgrades. Administrators should not, however, rely on its output completely (see BUGS below).
This script needs to run as root in order to obtain the information it needs for analysis.
Normally, the program will exit with error (1) if a non-root user tries to run it. Otherwise, it will always exit with error status 0.
If the --terse switch is given, the exit code is 1 when there are deleted open files and 0 when there are none. This is intended for consumption by Nagios and similar automated monitoring tools.
Start it as user root without parameters:
# checkrestart
Found 20 processes using old versions of upgraded files
(15 distinct programs)
(14 distinct packages)
Of these, 12 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:
gpm:
3044 /usr/sbin/gpm
rpcbind:
2208 /sbin/rpcbind
bind9:
8463 /usr/sbin/named
openssh-server:
22124 /usr/sbin/sshd
ntp:
4078 /usr/sbin/ntpd
tftpd-hpa:
3417 /usr/sbin/in.tftpd
uptimed:
2704 /usr/sbin/uptimed
cron:
3019 /usr/sbin/cron
postfix:
22145 /usr/lib/postfix/qmgr
8892 /usr/lib/postfix/master
hddtemp:
3174 /usr/sbin/hddtemp
autofs:
2792 /usr/sbin/automount
openbsd-inetd:
3254 /usr/sbin/inetd
These are the init scripts:
service gpm restart
service rpcbind restart
service bind9 restart
service ssh restart
service ntp restart
service tftpd-hpa restart
service uptimed restart
service cron restart
service postfix restart
service hddtemp restart
service autofs restart
service openbsd-inetd restart
These processes do not seem to have an associated init script to restart
them:
isc-dhcp-client:
3775 /sbin/dhclient
This is another example to show the machine-readable output:
# checkrestart --machine
PROCESSES: 4
PROGRAMS: 4
PACKAGES: 2
INIT:bcfg2-server,6974,/usr/sbin/bcfg2-server
INIT:exim4-daemon-light,857,/usr/sbin/exim4
OTHER:aptitude,11679,/usr/bin/aptitude-curses
OTHER:xscreensaver,6562,/usr/bin/xscreensaver
This program might fail if the output of the lsof(8) utility changes since it depends on it to detect which deleted files are used by processes. It might also output some false positives depending on the processes' behaviour since it does not check yet if the (deleted) files in use are really libraries.
If you find a false positive in checkrestart please provide the following information when submitting a bug report:
lsof | egrep 'delete|DEL|path inode'
checkrestart is also sensitive to the kernel version in use. And might fail to work with newer (or older) versions.
Please note that the needrestart program uses a different logic to determine which services should be restarted based on deleted files. Results might not be exactly the same as those provided by checkrestart
checkrestart was written by Matt Zimmerman for the Debian GNU/Linux distribution. It was later improved by Javier Fernandez-Sanguino with contributions from many different users and developers of the Debian GNU/Linux distribution.
Copyright (C) 2001 Matt Zimmerman <mdz@debian.org>
Copyright (C) 2007,2010-2015 Javier Fernandez-Sanguino
<jfs@debian.org>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
On Debian systems, a copy of the GNU General Public License version 2 can be found in /usr/share/common-licenses/GPL-2.
December 19 2006 | debian-goodies |