-- Leo's gemini proxy

-- Connecting to perso.pw:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

Port of the week: checkrestart


Author: Solène

Date: 02 March 2021

Tags: openbsd portoftheweek


Comment on Mastodon


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.

-- Response ended

-- Page fetched on Thu Apr 25 07:39:45 2024