How to use the command 'nm-online' (with examples)
The command nm-online
is a tool used in Unix-like operating systems to query the NetworkManager daemon about the current state of the network connection. Specifically, it checks whether the system is connected to a network and can be particularly useful in scripts and automation. NetworkManager is a dynamic network control and configuration daemon that attempts to keep a device connected to the network while keeping configuration tasks simple for end-users. nm-online
is a command-line utility that interfaces with this daemon, offering straightforward insights into network connectivity status.
Use case 1: Find out whether the network is connected and print the result to stdout
Code:
nm-online
Motivation:
This command is generally used when a user or an automated script needs to verify network connectivity status. Knowing whether the device is currently connected to a network is crucial for applications, scripts, or systems that rely on continuous network connectivity for functioning properly. When running commands that require internet access, it is advisable to check network status to prevent disruptions and potential errors due to lack of connectivity.
Explanation:
nm-online
: This is the command itself. When run without any additional arguments, it will query NetworkManager and return information about the current network status, indicating whether the system is connected or not. It gives a quick and succinct snapshot of network availability. The command will print “online” immediately if a network connection is available or wait for a connection to become active before returning.
Example Output:
NetworkManager is online
or
NetworkManager state is: connecting
Use case 2: Wait n
seconds for a connection (30 by default)
Code:
nm-online --timeout n
Motivation:
In scenarios where establishing a network connection may take some variable amount of time, using the --timeout
option with nm-online
can be valuable. This option allows users or scripts to wait for a specified period for the network to become available. This can be especially beneficial when starting applications or services that absolutely require network access, ensuring that they only proceed when the network is ready. The default behavior is to wait for 30 seconds, but this can be adjusted depending on the expected network initialization time specific to your environment or situation.
Explanation:
nm-online
: The core command used to check network status via NetworkManager.--timeout n
: This option allows you to specify how longnm-online
should wait for a network connection to become available. By settingn
, you define this waiting period in seconds. This option provides a customizable waiting mechanism suited to environments where network initialization might be delayed due to various reasons, such as slow connections or network hardware with lengthy setup times.
Example Output:
NetworkManager is online
or, if the timeout elapses without gaining a connection:
NetworkManager state is: offline
Conclusion:
The nm-online
command is a valuable utility for users and system administrators who need to gain quick insights into their system’s network connectivity status. By using different options, such as the default check or setting specific timeouts, the command provides flexibility suitable for various use cases. Whether checking for connectivity before performing network-dependent tasks or waiting for networks to stabilize, nm-online
serves as a straightforward tool to ensure network readiness.