How to use the command 'needrestart' (with examples)
- Linux
- December 25, 2023
The ’needrestart’ command is a useful tool that allows you to check which daemons need to be restarted after library upgrades. It is particularly helpful in ensuring that updated libraries are properly loaded by running services on a Linux system. With ’needrestart’, you can easily identify outdated processes, interactively restart services, and check the status of the kernel and CPU microcode. This article will provide example use cases for different options of the ’needrestart’ command.
Use case 1: List outdated processes
Code:
needrestart
Motivation: Checking for outdated processes after upgrading system libraries is crucial to ensure that the updates are applied correctly and all services are running with the updated versions. By simply running ’needrestart’ without any arguments, you can easily list all the outdated processes on your system.
Explanation: In this use case, the ’needrestart’ command is executed without any arguments. This command will scan the system and display a list of all the processes that need to be restarted after a library upgrade.
Example output:
Scanning processes...done
Scanning candidates...done
The following processes need to be restarted:
openvpn
apache2
Use case 2: Interactively restart services
Code:
sudo needrestart
Motivation: Sometimes, it is not enough to simply determine which processes need to be restarted. In certain cases, you may want to immediately initiate the restart process. By running ’needrestart’ with superuser privileges using the ‘sudo’ command, you can interactively restart the services that require restarting.
Explanation: In this use case, the ’needrestart’ command is executed with ‘sudo’ to run it with administrative privileges. This allows ’needrestart’ to restart the required services directly from the terminal, interactively guiding you through the process.
Example output:
Scanning processes...done
Scanning candidates...done
The following processes need to be restarted:
openvpn
apache2
Do you want to restart the listed services? [Y/n]
Use case 3: List outdated processes in [v]erbose or [q]uiet mode
Code:
needrestart -v
or
needrestart -q
Motivation: Depending on your preference and the amount of information you want to see, you may choose to run ’needrestart’ in different modes. The ‘-v’ option allows you to list outdated processes in verbose mode, displaying detailed information, while the ‘-q’ option lets you run ’needrestart’ in quiet mode, displaying only the minimum necessary output.
Explanation: In this use case, the ’needrestart’ command is executed with either the ‘-v’ or ‘-q’ option. The ‘-v’ option stands for verbose mode and provides more detailed information about the outdated processes. On the other hand, the ‘-q’ option stands for quiet mode, which displays only the essential information.
Example output (verbose mode):
Scanning processes...done
Scanning candidates...done
The following processes need to be restarted:
openvpn
- /usr/sbin/openvpn [ LIBC ]
apache2
- /usr/sbin/apache2 [ LIBC ]
Example output (quiet mode):
openvpn
apache2
Use case 4: Check if the [k]ernel is outdated
Code:
needrestart -k
Motivation: It is crucial to keep the kernel updated to ensure system security and stability. By using the ‘-k’ option with the ’needrestart’ command, you can quickly check if the kernel is outdated and needs to be restarted.
Explanation: In this use case, the ’needrestart’ command is executed with the ‘-k’ option. This option specifically checks if the kernel is outdated and requires a restart.
Example output:
Scanning processes...done
Scanning candidates...done
No kernel updates requiring restart found.
Use case 5: Check if the CPU microcode is outdated
Code:
needrestart -w
Motivation: Upgrading the CPU microcode is important for performance enhancements and security fixes. By using the ‘-w’ option with the ’needrestart’ command, you can check if the CPU microcode is outdated and needs to be updated.
Explanation: In this use case, the ’needrestart’ command is executed with the ‘-w’ option. This option specifically checks if the CPU microcode is outdated and requires an update.
Example output:
Scanning processes...done
Scanning candidates...done
No CPU microcode updates requiring restart found.
Use case 6: List outdated processes in [b]atch mode
Code:
needrestart -b
Motivation: Running ’needrestart’ in batch mode can be useful when you want to automate the process or redirect the output to a file for further analysis. The ‘-b’ option allows you to list the outdated processes in a format that is suitable for machine processing.
Explanation: In this use case, the ’needrestart’ command is executed with the ‘-b’ option. This option lists the outdated processes in a machine-readable format, making it ideal for automation or redirection.
Example output:
openvpn
apache2
Use case 7: List outdated processes using a specific [c]onfiguration file
Code:
needrestart -c path/to/config
Motivation: In certain scenarios, you may want to use a specific configuration file to determine which processes need to be restarted. By using the ‘-c’ option followed by the path to the configuration file, you can customize ’needrestart’ based on your requirements.
Explanation: In this use case, the ’needrestart’ command is executed with the ‘-c’ option, followed by the path to the desired configuration file. This allows ’needrestart’ to use the specified configuration file to check for outdated processes.
Example output:
Scanning processes...done
Scanning candidates...done
The following processes need to be restarted:
nginx
php-fpm7.4
Use case 8: Display help
Code:
needrestart --help
Motivation: When using a new command or exploring available options, it’s always helpful to have access to the command’s documentation. By using the ‘–help’ option with the ’needrestart’ command, you can quickly access the built-in help guide.
Explanation: In this use case, the ’needrestart’ command is executed with the ‘–help’ option. This option displays a brief description of the command and provides information about the available options and their usage.
Example output:
Usage: needrestart [-c <config_file>] [-b] [-v|q|-w|-k] [--help]
Options:
-c <config_file> Configuration file to load.
-b Output in batch mode.
-v Verbose output.
-q Quiet mode.
-w Check CPU microcode.
-k Check kernel.
--help Show this help message.
Conclusion:
The ’needrestart’ command is a versatile tool that can help you manage library upgrades and ensure the proper functioning of services after such updates. By understanding the various options available, you can easily identify outdated processes, interactively restart services, and check the status of important components such as the kernel and CPU microcode. Incorporating ’needrestart’ into your regular system maintenance routine can greatly enhance the stability and security of your Linux system.