Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

You manage application

Scroll Indexterm
Scroll Indexterm
(services) Services (also known as daemons) and processes are at the heart of how a Linux system functions. Most of the time a service takes care of itself; you just enable and start it, then let it run. However, because a Cumulus Linux switch is a Linux system, you have the ability to dig deeper if you like. Services may start multiple processes as they run. Services tend to be the most important things to monitor on a Cumulus Linux switch. 

You manage services in Cumulus Linux in the following ways:

  • Identify active listener ports
  • Identify daemons currently active Identify currently active or stopped services
  • Identify boot time state of a specific daemonservice
  • Disable or enable a specific daemonservice
  • Identify active listener ports


titleThis topic describes ...

Table of Contents

systemd and the systemctl Command

In general, you manage services using systemd via the systemctl command. You use it with any service on the switch to start, stop, restart, reload, enable, disable, reenable, or get the status of the service.



Unlike the service command in Debian Wheezy, the service name is written after the systemctl subcommand, not before it.

To see all the currently running services, run:

Code Block
cumulus@switch:~$ sudo systemctl status
● switch
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 2019-01-10 00:19:34 UTC; 23h ago
   CGroup: /
           ├─1 /sbin/init
             │ └─403 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
             │ └─669 /usr/sbin/uuidd --socket-activation
             │ └─381 /usr/sbin/cron -f -L 38
             │ └─606 /usr/bin/python /usr/sbin/smond
             │ └─587 /usr/sbin/switchd -vx
             │ └─613 /usr/bin/python /usr/sbin/ledmgrd
             │ └─433 /usr/sbin/wd_keepalive 
             │ └─915 /usr/bin/python /usr/sbin/netq-agent
             │ └─914 /usr/sbin/ptmd -l INFO
             │ ├─729 /sbin/dhclient -pf /run/ -lf /var/lib/dhcp/dhclient.vagrant.leases vagrant
             │ └─828 /sbin/dhclient -pf /run/ -lf /var/lib/dhcp/dhclient.eth0.leases eth0
             │ ├─449 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
             │ ├─450 nginx: worker process                           
             │ ├─451 nginx: worker process                           
             │ ├─452 nginx: worker process                           
             │ └─453 nginx: worker process                           
             │ ├─ 847 /bin/bash /usr/lib/cumulus/sysmonitor
             │ └─7717 sleep 60
             │ └─serial-getty@ttyS0.service
             │   └─920 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt102
             │ └─844 /usr/bin/python /usr/bin/neighmgrd
             │ └─252 /lib/systemd/systemd-journald
             │ └─846 /usr/bin/python /usr/sbin/netqd --daemon
             │ └─337 /sbin/auditd -n
             │ └─614 /usr/bin/python /usr/sbin/pwmd
             │ └─845 /usr/bin/python -O /usr/sbin/netd -d
             │ ├─ 937 /usr/sbin/sshd -D
             │ ├─6893 sshd: cumulus [priv]
             │ ├─6911 sshd: cumulus@pts/0 
             │ ├─6912 -bash
             │ ├─7747 sudo systemctl status
             │ ├─7752 systemctl status
             │ └─7753 pager
             │ └─405 /lib/systemd/systemd-logind
             │ └─getty@tty1.service
             │   └─435 /sbin/agetty --noclear tty1 linux
             │ └─254 /lib/systemd/systemd-udevd
             │ └─438 /usr/sbin/mcelog --ignorenodev --daemon --foreground
             │ └─603 /usr/bin/python /usr/sbin/portwd
             │ ├─911 lldpd: monitor.        
             │ └─936 lldpd: connected to oob-mgmt-switch
             │ └─392 /usr/sbin/rsyslogd -n
             │ └─912 /usr/sbin/ntpd -n -u ntp:ntp -g
             │ └─390 /usr/sbin/acpid
               └─436 /sbin/mstpd -d -v2

systemctl Subcommands

systemctl has a number of subcommands that perform a specific operation on a given daemonservice

  • status: Returns the status of the specified daemonservice.
  • start: Starts the daemonservice.
  • stop: Stops the daemonservice.
  • restart: Stops, then starts the daemonservice, all the while maintaining state. So if there are dependent services or services that mark the restarted service as Required, the other services also get restarted. For example, running systemctl restart frr.service restarts any of the routing protocol daemons services that are enabled and running, such as bgpd or ospfd.
  • reload: Reloads a daemonservice's configuration.
  • enable: Enables the daemon service to start when the system boots, but does not start it unless you use the systemctl start SERVICENAME.service command or reboot the switch. 
  • disable: Disables the daemonservice, but does not stop it unless you use the systemctl stop SERVICENAME.service command or reboot the switch. A disabled daemon service can still be started or stopped. 
  • reenable: Disables, then enables a daemonservice. You might need to do this so that any new Wants or WantedBy lines create the symlinks necessary for ordering. This has no side effects on other

There is often little reason to interact with the services directly using these commands. If a critical service should happen to crash or hit an error it will be automatically respawned by systemd. Systemd is effectively the caretaker of services in modern Linux systems and is responsible for starting all the necessary services at boot time.

Ensure a Service Starts after Multiple Restarts

By default, systemd is configured to try to restart a particular service only a certain number of times within a given interval before the service fails to start at all. The settings for this are stored in the service script. The settings are StartLimitInterval (which defaults to 10 seconds) and StartBurstLimit (which defaults to 5 attempts), but many services override these defaults, sometimes with much longer times. switchd.service, for example, sets StartLimitInterval=10m and StartBurstLimit=3, which means if you restart switchd more than 3 times in 10 minutes, it does not start.


To clear this error, run systemctl reset-failed switchd.service. If you know you are going to restart frequently (multiple times within the StartLimitInterval), you can run the same command before you issue the restart request. This also applies to stop followed by start.

Keep systemd Services from Hanging after Starting

If you start, restart, or reload any systemd service that can be started from another systemd service, you must use the --no-block option with systemctl. Otherwise, that service or even the switch itself might hang after starting or restarting.

Identify Active Listener Ports for IPv4 and IPv6

You can identify the

Scroll Indexterm
primaryactive listener ports
active listener ports under both IPv4 and IPv6 using the netstat command:

Code Block
cumulus@switch:~$ sudo netstat -nlp --inet --inet6
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0    *               LISTEN      444/dnsmasq     
tcp        0      0    *               LISTEN      874/sshd        
tcp6       0      0 :::53                   :::*                    LISTEN      444/dnsmasq     
tcp6       0      0 :::22                   :::*                    LISTEN      874/sshd        
udp        0      0 *                           839/dhclient    
udp        0      0    *                           444/dnsmasq     
udp        0      0    *                           839/dhclient    
udp        0      0*                           907/ntpd        
udp        0      0 *                           907/ntpd        
udp        0      0   *                           907/ntpd        
udp        0      0  *                           909/ptmd        
udp        0      0  *                           909/ptmd        
udp        0      0  *                           909/ptmd        
udp6       0      0 :::58352                :::*                                839/dhclient    
udp6       0      0 :::53                   :::*                                444/dnsmasq     
udp6       0      0 fe80::a200:ff:fe00::123 :::*                                907/ntpd        
udp6       0      0 ::1:123                 :::*                                907/ntpd        
udp6       0      0 :::123                  :::*                                907/ntpd        
udp6       0      0 :::4784                 :::*                                909/ptmd        
udp6       0      0 :::3784                 :::*                                909/ptmd



Services Currently Active or Stopped

To determine which daemons services are currently active or stopped, run the  cl-service-summary command:

Code Block
cumulus@switch:~$ cl-service-summary
Service cron               enabled    active   
Service ssh                enabled    active   
Service syslog             enabled    active   
Service asic-monitor       enabled    inactive 
Service neighmgrdclagd              enabled    inactive 
Service cumulus-poe                   inactive 
Service lldpd              enabled    active   
Service clagdmstpd              enabled    active   
Service lldpdneighmgrd          enabled    active   
Service mstpdnetd               enabled    active   
Service poednetq-agent         enabled    active   
Service ntp  inactive              enabled    active   
Service portwd             enabled    active inactive  
Service ptmd               enabled    active   
Service pwmd               enabled    active   
Service smond              enabled    active   
Service switchd            enabled    active   
Service sysmonitor         enabled    active   
Service vxrd               disabled   inactive 
Service vxsnd              disabled   inactive 
Service rdnbrd             disabled   inactive 
Service frr                enabled    inactive 
Service bgpd               disabled   inactive 
Service eigrpd             disabled   inactive 
Service isisd              disabled   inactive 
Service ldpd               disabled   inactive 
Service nhrpd              disabled   inactive 
Service ospf6d             disabled   inactive 
Service ospfd              disabled   inactive 
Service rdnbrdpbrd               disabled   inactive 
Service pimd               disabled   inactive 
Service ripd               disabled   inactive 
Service ripngd             disabled   inactive 
Service zebra              disabled   inactive 

You can also run the systemctl list-unit-files --type service command to list all services on the switch and see which ones are enabled:

titleClick here to see output of this command ...
Code Block
cumulus@switch:~$ systemctl list-unit-files --type service
UNIT FILE                              STATE   
aclinit.service                        enabled 
acltool.service                        enabled 
acpid.service                          disabled
arp_refreshasic-monitor.service                    enabled 
auditd.service                         enabled 
autovt@.service                        disabled
bootlogbmcd.service                        enabled  bootlogd disabled
bootlog.service                       masked enabled 
bootlogsbootlogd.service                       masked  
bootmiscbootlogs.service                       masked  
checkfsbootmisc.service                        masked  
checkroot-bootcleancheckfs.service            masked   checkroot.service         masked  
checkroot-bootclean.service            masked  
clagdcheckroot.service                      masked  
clcmdclagd.service                          enabled 
console-getty.service                  disabled
console-shell.service                  disabled
container-getty@.service               static  
cron.service                           enabled 
cryptdisks-early.service               masked  
cryptdisks.service                     masked  
cumulus-aclcheck.service               static  
cumulus-chassis-ssh.service            disabled
cumulus-chassisd.service               disabled
cumulus-core.service                   static  
cumulus-fastfailover.service           enabled 
cumulus-firstboot.service              disabled
cumulus-hyperconverged.service         disabled
cumulus-platform.service               enabled 
cumulus-support.service                static  
dbus-org.freedesktop.hostname1.service static  
dbus-org.freedesktop.locale1.service   static  
dbus-org.freedesktop.login1.service    static  
dbus-org.freedesktop.machine1.service  static  
dbus-org.freedesktop.timedate1.service static  
dbus.service                           static  
debian-fixup.service                   static  
debug-shell.service                    disabled
decode-syseeprom.service               static  
dhcpd.service                          disabled
dhcpd6.service                         disabled
dhcpd6@.service                        disabled
dhcpd@.service                         disabled
dhcrelay.service                       enableddisabled

dhcrelay6.service                      disabled
dhcrelay6@.service                     disabled
dhcrelay@.service                      disabled
dm-event.service                       disabled
dns-watcher.service                    disabled
dnsmasq.service                        enableddisabled

emergency.service                      static  
frr.service                            enabled 
fuse.service                           masked  
getty-static.service                   static  
getty@.service                         enabled 
halt-local.service                     static  
halt.service                           masked  
heartbeat-failed@.service              static  
hostapd.service                        disabled
hostname.service                       masked  
hsflowd.service                        enableddisabled

hsflowd@.service                       enableddisabled

hwclock-save.service                   enabled 
hwclock.service                        masked  
hwclockfirst.service                   masked  
ifup@.service                          static  
initrd-cleanup.service                 static  
initrd-parse-etc.service               static  
initrd-switch-root.service             static  
initrd-udevadm-cleanup-db.service      static  
ipmievd.service                        disabled
killprocs.service                      masked  
kmod-static-nodes.service              static  
kmod.service                           static  
ledmgrd.service                        enabled 
lldpd.service                          enabled 
lm-sensors.service                     enabled 
lvm2-activation-early.service          enabled 
lvm2-activation.service                enabled 
lvm2-lvmetad.service                   static  
lvm2-monitor.service                   enabled 
lvm2-pvscan@.service                   static  
lvm2.service                           disabled
mcelog.service                         enabled 
module-init-tools.service              static  
motd.service                           masked  
mountall-bootclean.service             masked  
mountall.service                       masked  
mountdevsubfs.service                  masked  
mountkernfs.service                    masked  
mountnfs-bootclean.service             masked  
mountnfs.service                       masked  
mstp_bridge.service                    enabled 
mstpd.service                          enabled 
neighmgrd.service                      enabled 
netd.service                           enabled 
netq-agent.service                     enabled 
netq-agent@.service                    disabled
netq-notifier.service                  disabled
netq-notifier@.service                 disabled
netqd.service                          enabled 
netqd@.service                         disabled
networking.service                     enabled 
nginx.service                          enabled 
ntp.service                            enabled 
ntp@.service                           disabled
open-vm-tools.service                  enabled 
openvswitch-vtep.service               disabled
phc2sys.service                        disabled
phy-ucode-update.service               enabled 
portwd.service                         enabled 
procps.service                         static  
ptmd.service                           enabled 
pwmdptp4l.service                          disabled
frrpwmd.service                            enabled 
quotaon.service                        static  
rc-local.service                       static  
rc.local.service                       static  
rdnbrd.service                         disabled
reboot.service                         masked  
rescue.service                         static  
restserver.service                     disabled
rmnologin.service                      masked  
rsyslog.service                        enabled 
screen-cleanup.service                 masked  
sendsigs.service                       masked  
serial-getty@.service                  disabled
single.service                         masked  
smartd.service                         masked  
smartmontools.service                  disabled
smond.service                          enabled 
snmpd.service                          disabled
snmpd@.service                         disabled
snmptrapd.service                      disabled
snmptrapd@.service                     disabled
ssh.service                            enabled 
ssh@.service                           disabled
sshd.service                           enabled 
stop-bootlogd-single.service           masked  
stop-bootlogd.service                  masked  
stopssh.service                        enabled 
sudo.service                           disabled
switchd-diag.service                   static  
switchd.service                        enabled 
syslog.service                         enabled 
sysmonitor.service                     staticenabled 

systemd-ask-password-console.service   static  
systemd-ask-password-wall.service      static  
systemd-backlight@.service             static  
systemd-binfmt.service                 static  
systemd-fsck-root.service              static  
systemd-fsck@.service                  static  
systemd-halt.service                   static  
systemd-hibernate.service              static  
systemd-hostnamed.service              static  
systemd-hybrid-sleep.service           static  
systemd-initctl.service                static  
systemd-journal-flush.service          static  
systemd-journald.service               static  
systemd-kexec.service                  static  
systemd-localed.service                static  
systemd-logind.service                 static  
systemd-machined.service               static  
systemd-modules-load.service           static  
systemd-networkd-wait-online.service   disabled
systemd-networkd.service               disabled
systemd-nspawn@.service                disabled
systemd-poweroff.service               static  
systemd-quotacheck.service             static  
systemd-random-seed.service            static  
systemd-readahead-collect.service      disabled
systemd-readahead-done.service         static  
systemd-readahead-drop.service         disabled
systemd-readahead-replay.service       disabled
systemd-reboot.service                 static  
systemd-remount-fs.service             static  
systemd-resolved.service               disabled
systemd-rfkill@.service                static  
systemd-setup-dgram-qlen.service       static  
systemd-shutdownd.service              static  
systemd-suspend.service                static  
systemd-sysctl.service                 static  
systemd-timedated.service              static  
systemd-timesyncd.service              disabled
systemd-tmpfiles-clean.service         static  
systemd-tmpfiles-setup-dev.service     static  
systemd-tmpfiles-setup.service         static  
systemd-udev-settle.service            static  
systemd-udev-trigger.service           static  
systemd-udevd.service                  static  
systemd-update-utmp-runlevel.service   static  
systemd-update-utmp.service            static  
systemd-user-sessions.service          static  
udev-finish.service                    static  
udev.service                           static  
umountfs.service                       masked  
umountnfs.service                      masked  
umountroot.service                     masked  
update-ports.service                   enabled 
urandom.service                        static  
user@.service                          static  
uuidd.service                          static  
vboxadd-service.service                enabled 
vboxadd-x11.service                    enabled 
vboxadd.service                        enabled 
vxrd.service                           disabled
vxsnd.service                          disabled
wd_keepalive.service                   enabled 
x11-common.service                     masked  
ztp-init.service                       enabled  ztp.service                            disabled
191210 unit files listed.
lines 147165-194213/194213 (END)

Identify Essential Services

If you need to know which services are required to run when the switch boots, run:

Code Block
cumulus@switch:~$ sudo systemctl list-dependencies --before

To see which services are needed for networking, run:

cumulus@switch:~$ sudo systemctl list-dependencies --after


To identify the services needed for a multi-user environment, run:

cumulus@leaf01cumulus@switch:~$ sudo systemctl list-dependencies --before


Important Services

The following table lists the most important services in Cumulus Linux.

Service NameDescriptionAffects Forwarding?

Hardware abstraction daemon, synchronizes the kernel with the ASIC.

sx_sdkOnly on Mellanox switches, interfaces with the Spectrum ASIC.YES
portwdReads pluggable information over the I2C bus. Identifies and classifies the optics that are inserted into the system. Sets interface speeds and capabilities to match the optics.YES, eventually, if optics are added/removed
frrFRRouting, handles routing protocols. There are separate processes for each routing protocol, like bgpd and ospfd.YES if routing
clagCumulus link aggregation daemon, handles MLAG.YES if using MLAG
neighmgrdSynchronizes MAC address information when MLAG is in use.YES if using MLAG
mstpdSpanning tree protocol daemon.YES if using layer 2
ptmdPrescriptive Topology Manager, verifies cabling based on LLDP output, also sets up BFD sessions.YES if using BFD
netdNCLU back end.NO
rsyslogHandles logging of syslog messages.NO
ntpNetwork time protocol.NO
ledmgrdLED manager, reads the state of system LEDs.NO
sysmonitorWatches and logs critical system load (free memory, disk, CPU).NO
lldpdHandles Tx/Rx of LLDP information.NO
smondReads platform sensors and fan information from pwmd.NO
pwmdReads and sets fan speeds.NO