The Systemd framework in Ubuntu may be used to get good information about running services on your machine. This is very easy.
To list all active services on your Ubuntu machine, use this command.
jason@jason-desktop:~/Videos$ systemctl list-units --type=service --state=active |
Or this command which is a fast way to list all running services.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | jason@jason-desktop:~/Videos$ systemctl list-units --type=service --state=running UNIT LOAD ACTIVE SUB DESCRIPTION accounts-daemon.service loaded active running Accounts Service acpid.service loaded active running ACPI event daemon avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack colord.service loaded active running Manage, Install and Generate Color Profiles cron.service loaded active running Regular background program processing daemon cups-browsed.service loaded active running Make remote CUPS printers available locally cups.service loaded active running CUPS Scheduler dbus.service loaded active running D-Bus System Message Bus gdm.service loaded active running GNOME Display Manager irqbalance.service loaded active running irqbalance daemon kerneloops.service loaded active running Tool to automatically collect and submit kernel crash signatures ModemManager.service loaded active running Modem Manager netperf.service loaded active running LSB: network benchmark networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd NetworkManager.service loaded active running Network Manager nvidia-persistenced.service loaded active running NVIDIA Persistence Daemon polkit.service loaded active running Authorization Manager rsyslog.service loaded active running System Logging Service rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service snapd.service loaded active running Snap Daemon ssh.service loaded active running OpenBSD Secure Shell server switcheroo-control.service loaded active running Switcheroo Control Proxy service systemd-journald.service loaded active running Journal Service systemd-logind.service loaded active running Login Service systemd-resolved.service loaded active running Network Name Resolution systemd-timesyncd.service loaded active running Network Time Synchronization systemd-udevd.service loaded active running udev Kernel Device Manager thermald.service loaded active running Thermal Daemon Service udisks2.service loaded active running Disk Manager unattended-upgrades.service loaded active running Unattended Upgrades Shutdown upower.service loaded active running Daemon for power management user@1000.service loaded active running User Manager for UID 1000 user@125.service loaded active running User Manager for UID 125 whoopsie.service loaded active running crash report submission daemon wpa_supplicant.service loaded active running WPA supplicant LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 35 loaded units listed. |
To get a listing of jobs that ran for the anacron service, use this command.
jason@jason-desktop:~/Videos$ journalctl -u anacron -- Logs begin at Thu 2020-07-09 07:36:13 AEST, end at Fri 2020-08-28 10:07:06 AEST. -- Jul 09 07:39:30 jason-desktop anacron[615]: Job `cron.daily' started Jul 09 07:39:31 jason-desktop anacron[615]: Job `cron.daily' terminated Jul 09 07:39:31 jason-desktop anacron[615]: Normal exit (1 job run) Jul 09 07:39:31 jason-desktop systemd[1]: anacron.service: Succeeded. -- Reboot -- Jul 10 18:03:30 jason-desktop systemd[1]: Started Run anacron jobs. Jul 10 18:03:30 jason-desktop anacron[614]: Anacron 2.3 started on 2020-07-10 Jul 10 18:03:30 jason-desktop anacron[614]: Will run job `cron.daily' in 5 min. Jul 10 18:03:30 jason-desktop anacron[614]: Will run job `cron.weekly' in 10 min. Jul 10 18:03:30 jason-desktop anacron[614]: Jobs will be executed sequentially Jul 10 08:08:31 jason-desktop anacron[614]: Job `cron.daily' started Jul 10 08:08:32 jason-desktop anacron[614]: Job `cron.daily' terminated Jul 10 11:40:37 jason-desktop anacron[614]: Received SIGUSR1 Jul 10 11:40:37 jason-desktop anacron[614]: Exited Jul 10 11:40:37 jason-desktop systemd[1]: Stopping Run anacron jobs... Jul 10 11:40:37 jason-desktop systemd[1]: anacron.service: Succeeded. Jul 10 11:40:37 jason-desktop systemd[1]: Stopped Run anacron jobs. -- Reboot -- Jul 11 05:38:19 jason-desktop systemd[1]: Started Run anacron jobs. Jul 11 05:38:19 jason-desktop anacron[608]: Anacron 2.3 started on 2020-07-11 Jul 11 05:38:20 jason-desktop anacron[608]: Will run job `cron.daily' in 5 min. Jul 11 05:38:20 jason-desktop anacron[608]: Will run job `cron.weekly' in 10 min. Jul 11 05:38:20 jason-desktop anacron[608]: Jobs will be executed sequentially Jul 10 19:43:21 jason-desktop anacron[608]: Job `cron.daily' started Jul 10 19:43:22 jason-desktop anacron[608]: Job `cron.daily' terminated Jul 10 19:45:04 jason-desktop anacron[608]: Received SIGUSR1 Jul 10 19:45:04 jason-desktop systemd[1]: Stopping Run anacron jobs... Jul 10 19:45:04 jason-desktop anacron[608]: Exited Jul 10 19:45:04 jason-desktop systemd[1]: anacron.service: Succeeded. Jul 10 19:45:04 jason-desktop systemd[1]: Stopped Run anacron jobs. -- Reboot -- |
The listing may be filtered by the PID if known. This is a very useful way to see what a service is up to.
jason@jason-desktop:~/Videos$ journalctl _PID=621 -- Logs begin at Thu 2020-07-09 07:36:13 AEST, end at Fri 2020-08-28 10:26:07 AEST. -- Jul 10 18:03:35 jason-desktop NetworkManager[621]: <info> [1594368215.3195] NetworkManager (version 1.22.10) is starting... (for the first time) Jul 10 18:03:35 jason-desktop NetworkManager[621]: <info> [1594368215.3196] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 10-dns-resolved.conf, 20-connectivity-ubuntu.conf, no-mac-addr-change.conf) (run: 10-globally-managed-devices.conf) (etc: default-wifi-powersave-on.conf) Jul 10 18:03:35 jason-desktop NetworkManager[621]: <info> [1594368215.3211] bus-manager: acquired D-Bus service "org.freedesktop.NetworkManager" Jul 10 18:03:35 jason-desktop NetworkManager[621]: <info> [1594368215.7377] manager[0x55a51d139030]: monitoring kernel firmware directory '/lib/firmware'. Jul 10 18:03:35 jason-desktop NetworkManager[621]: <info> [1594368215.7377] monitoring ifupdown state file '/run/network/ifstate'. Jul 10 18:03:36 jason-desktop NetworkManager[621]: <info> [1594368216.9881] hostname: hostname: using hostnamed Jul 10 18:03:36 jason-desktop NetworkManager[621]: <info> [1594368216.9882] hostname: hostname changed from (none) to "jason-desktop" Jul 10 18:03:36 jason-desktop NetworkManager[621]: <info> [1594368216.9886] dns-mgr[0x55a51d121290]: init: dns=systemd-resolved rc-manager=symlink, plugin=systemd-resolved Jul 10 18:03:36 jason-desktop NetworkManager[621]: <info> [1594368216.9890] manager[0x55a51d139030]: rfkill: Wi-Fi hardware radio set enabled |
But listing via the service name is easier to remember.
jason@jason-desktop:~/Videos$ journalctl -u NetworkManager -n 20 |
This example is very useful, this will watch a certain section of the journal and print new entries as they appear.
jason@jason-desktop:~/Videos$ journalctl -u NetworkManager -f -- Logs begin at Thu 2020-07-09 07:36:13 AEST. -- Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.8671] device (enp0s25): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed') Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9000] device (enp0s25): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed') Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9003] device (enp0s25): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed') Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9012] manager: NetworkManager state is now CONNECTED_LOCAL Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9025] manager: NetworkManager state is now CONNECTED_SITE Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9026] policy: set 'Wired connection 1' (enp0s25) as default for IPv4 routing and DNS Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9034] device (enp0s25): Activation: successful, device activated. Aug 28 07:40:46 jason-desktop NetworkManager[947]: <info> [1598564446.9044] manager: startup complete Aug 28 07:40:52 jason-desktop NetworkManager[947]: <info> [1598564452.6186] manager: NetworkManager state is now CONNECTED_GLOBAL Aug 28 07:40:17 jason-desktop NetworkManager[947]: <info> [1598564417.4536] agent-manager: agent[fab51569ca03770f,:1.89/org.gnome.Shell.NetworkAgent/1000]: agent registered |
That would be very useful to have running in an Xterm and watch for any errors whilst tweaking networking settings. Or anything else a systems administrator can think of.
Run journalctl with the -o cat parameter to show a simplified output that is slimmed down and makes it more readable.
jason@jason-desktop:~/Videos$ journalctl -u polkit -o cat -n 20 |
This makes NetworkManager information more readable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | jason@jason-desktop:~/Videos$ journalctl -u NetworkManager -o cat -n 20 <info> [1598564446.8637] dhcp4 (enp0s25): option requested_rfc3442_classless_static_routes => '1' <info> [1598564446.8638] dhcp4 (enp0s25): option requested_root_path => '1' <info> [1598564446.8638] dhcp4 (enp0s25): option requested_routers => '1' <info> [1598564446.8639] dhcp4 (enp0s25): option requested_static_routes => '1' <info> [1598564446.8639] dhcp4 (enp0s25): option requested_subnet_mask => '1' <info> [1598564446.8639] dhcp4 (enp0s25): option requested_time_offset => '1' <info> [1598564446.8640] dhcp4 (enp0s25): option requested_wpad => '1' <info> [1598564446.8640] dhcp4 (enp0s25): option routers => '192.168.1.1' <info> [1598564446.8640] dhcp4 (enp0s25): option subnet_mask => '255.255.255.0' <info> [1598564446.8640] dhcp4 (enp0s25): state changed unknown -> bound <info> [1598564446.8671] device (enp0s25): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed') <info> [1598564446.9000] device (enp0s25): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed') <info> [1598564446.9003] device (enp0s25): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed') <info> [1598564446.9012] manager: NetworkManager state is now CONNECTED_LOCAL <info> [1598564446.9025] manager: NetworkManager state is now CONNECTED_SITE <info> [1598564446.9026] policy: set 'Wired connection 1' (enp0s25) as default for IPv4 routing and DNS <info> [1598564446.9034] device (enp0s25): Activation: successful, device activated. <info> [1598564446.9044] manager: startup complete <info> [1598564452.6186] manager: NetworkManager state is now CONNECTED_GLOBAL <info> [1598564417.4536] agent-manager: agent[fab51569ca03770f,:1.89/org.gnome.Shell.NetworkAgent/1000]: agent registered |
This may be filtered using awk to show only certain columns.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | jason@jason-desktop:~/Videos$ journalctl -u NetworkManager -n 20 | awk '{ print $1,$2,$3,$4,$11,$12,$13,$14}' -- Logs begin at Fri 2020-08-28 10:43:57 AEST. Aug 28 07:40:46 jason-desktop requested_rfc3442_classless_static_routes => '1' Aug 28 07:40:46 jason-desktop requested_root_path => '1' Aug 28 07:40:46 jason-desktop requested_routers => '1' Aug 28 07:40:46 jason-desktop requested_static_routes => '1' Aug 28 07:40:46 jason-desktop requested_subnet_mask => '1' Aug 28 07:40:46 jason-desktop requested_time_offset => '1' Aug 28 07:40:46 jason-desktop requested_wpad => '1' Aug 28 07:40:46 jason-desktop routers => '192.168.1.1' Aug 28 07:40:46 jason-desktop subnet_mask => '255.255.255.0' Aug 28 07:40:46 jason-desktop changed unknown -> bound Aug 28 07:40:46 jason-desktop change: ip-config -> ip-check Aug 28 07:40:46 jason-desktop change: ip-check -> secondaries Aug 28 07:40:46 jason-desktop change: secondaries -> activated Aug 28 07:40:46 jason-desktop is now CONNECTED_LOCAL Aug 28 07:40:46 jason-desktop is now CONNECTED_SITE Aug 28 07:40:46 jason-desktop connection 1' (enp0s25) as Aug 28 07:40:46 jason-desktop successful, device activated. Aug 28 07:40:46 jason-desktop Aug 28 07:40:52 jason-desktop is now CONNECTED_GLOBAL Aug 28 07:40:17 jason-desktop registered |
This shows the date and time, the hostname, and the message that we are looking for. This is a good way to simplify the output and determine what is wrong with a network interface if there are any issues when changing settings.