Service Restart after Upgrades

From Run Your Own
Jump to navigation Jump to search

After updating some software on a Linux machine, some services making use of this software will be restarted to make use of the new version. But most of the time, no. One way to refresh it all is to reboot, but unless there is a kernel update you should not need to do such thing.

Find software that needs to be restarted

You can do that with lsof and looking for process that have opened files that are now gone (DEL). They are still in memory (otherwise said process would be quite unhappy), but they changed on disk since the process first opened them. That's a sign these files have been most likely updated, and the processes who need them should be restarted to benefit from their latest versions.

sudo lsof | grep lib | grep DEL                                    # verbosy
sudo lsof | grep lib | grep DEL | awk '{print $1}' | sort | uniq   # less verbosy

Restart service

Well, you know... Once you have your list of processes who could do with some refreshing, their name should easily hint at the service you need to restart :)

sudo service whatever restart

Notes

  • Most things can be restarted without creating havoc, in doubt, RTFM.
  • If needed systemd itself will have been most likely restarted by post-install package manager hooks/scripts. If you want to force restart the daemon, use sudo systemctl daemon-reexec. However whether or not the daemon was restarted does not mean that systemd related processes do not need to be restarted as well (for instance journald) but these are best restarted via systemctl. Just check the output of lsof to see if any of this applies to your situation.