C RFC for a small tool to list processes using outdated binaries/libraries


Recently I found out about needrestart/checkrestart utilities and I was considering integrating them in our existing Nagios3 instance.

Because I couldn't find anything comparable for FreeBSD, I wrote my own. Since few hours ago lsop is in github. lsop is a FreeBSD utility to list all processes running with outdated binaries or shared libraries (that is, upgraded or deleted, but not restarted). It is not a complete replacement for needrestart/checkrestart, but a starting point for one. Please consider giving it a try and do share your thoughts.

Thank you!
Nice tool, indeed useful and something I was missing ;)
On a test run it reported some false positives, so I've taken the liberty to open the first issue on github
You're welcome! I've tested with programs we normally run on our customers' servers and what I run at home. I've replied in github, can you provide output from procstat -v <pid>? Here, there, either way is fine.
Hi Bobi,
Nice tool - have you thought about making a port for it?
It would be nice if you could tag a version. E.g. you could tag the current commit in GitHub as release 0.1?
One comment. Your write in the README.md that "Since, at this time, kernel blanks file paths when file is deleted or replaced, lsop cannot distinguish between deleted or replaced file, as lacking path, it cannot check if a new version of file exists or not.".

I wouldn't worry about this at all. It's entirely possible that the next update to the package that owns the missing file replaces the missing executable or a shared library with a file that has a different name, you wouldn't be able to predict that in your tool even if the kernel didn't blank the file paths.
Until now I'm running the lsop utility on all my system and I'm really exited about it.
It is not only useful after upgrading ports but also after a freebsd-update (for example it will signal you to restart the ntp deamon ...)
After using it now since the first announcement I would wish an official port or to adopt lsop into the base system!