Posted: . At: 10:54 AM. This was 4 years ago. Post ID: 14573
Page permalink. WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.
These cookies expire two weeks after they are set.


Get information about running services with Systemd on Ubuntu.


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.

systemctl
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.


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.