| Title: Port of the week: checkrestart | |
| Author: Solène | |
| Date: 02 March 2021 | |
| Tags: openbsd portoftheweek | |
| Description: | |
| # Introduction | |
| This article features the very useful program "checkrestart" which is | |
| OpenBSD specific. The purpose of checkrestart is to display which | |
| programs and their according PID for which the binaries doesn't exist | |
| anymore. | |
| Why would their binary be absent? The obvious case is that the program | |
| was removed, but what it is really good at, is when you upgrade a | |
| package with running binaries, the old binary is deleted and the new | |
| binary installed. In that case, you will have to stop all the running | |
| binaries and restart them. Hence the name "checkrestart". | |
| # Installation | |
| Installing it is as simple as running pkg_add checkrestart | |
| # Usage | |
| This is simple too, when you run checkrestart, you will have a list of | |
| PID numbers with the binary name. | |
| For example, on my system, checkrestart gives me information about what | |
| programs got updated that I should restart to run the new binary. | |
| ``` | |
| 69575 lagrange | |
| 16033 lagrange | |
| 9664 lagrange | |
| 77211 dhcpleased | |
| 6134 dhcpleased | |
| 21860 dhcpleased | |
| ``` | |
| # Real world usage | |
| If you run OpenBSD -stable, you will want to use checkrestart after | |
| running pkg_add -u. After a package update, most often related to | |
| daemons, you will have to restart the related services. | |
| On my server, in my daily script updating packages and running | |
| syspatch, I use it to automatically restart some services. | |
| ``` | |
| checkrestart | grep php && rcctl restart php-fpm | |
| checkrestart | grep postgres && rcctl restart postgresql | |
| checkrestart | grep nginx && rcctl restart nginx | |
| ``` | |
| # Other Operating System | |
| I've been told that checkrestart is also available on FreeBSD as a | |
| package! The output may differ but the use is the same. | |
| On Linux, a similar tool exists under the name "needrestart", at least | |
| on Debian and Gentoo. |