diff --git a/check_systemdunit b/check_systemdunit
index 514471f67619d5a53822d7b65c94289056a616e4..9820c3ec9e13e7cb1c4f244713f2a39fcbf82fed 100755
--- a/check_systemdunit
+++ b/check_systemdunit
@@ -3,23 +3,14 @@
 #
 # CHECK A SINGLE SYSTEMD SERVICE
 #
-# (1)
-# shows overview of important services - edit check_systemdservices.cfg to define
-# them
-#
-# (2)
-# resturns
-# - OK      if all systemd servises are running
-# - UNKNOWN if systemctl command is not available
-# - ERROR   if any systemd service is not running
-#
 # -------------------------------------------------------------------------------
-# 2023-09-05  v01.0  <axel.hahn@unibe.ch>
+# 2023-09-05  v1.0  <axel.hahn@unibe.ch>
+# 2020-09-08  v1.1  <axel.hahn@unibe.ch>  add params -s, -l
 # ================================================================================
 
 . $( dirname $0 )/inc_pluginfunctions
 
-export self_APPVERSION=1.0
+export self_APPVERSION=1.1
 
 # ----------------------------------------------------------------------
 # FUNCTIONS
@@ -37,16 +28,24 @@ The status is unknown if the command systemctl is not found.
 The status is critical if the service does not exist or is not running.
 
 SYNTAX:
-  $_self [-h] UNIT
+  $_self [-h|-l|-s] UNIT
 
 OPTIONS:
+
   -h     this help
+  -l     list all units
+  -s     list service units
+
   UNIT   Name of a unit - see output of 'systemctl' 
 
 EXAMPLES:
 
-  $_self mysql.service
-         show status of service mysql
+  $_self -s
+         list all existing services. For a unit check you need to add the name
+         in the 1st column.
+
+  $_self nginx.service
+         show status of nginx webservice
 
 EOF
 }
@@ -64,8 +63,31 @@ fi
 
 ph.require "systemctl"
 
-_service="${1}"
-_status=$( systemctl --no-pager -l status "${_service}" 2>&1 )
+# --- list all units
+if ph.hasParamoption "l" "$@" ; then
+  echo "List of all systemd units:"
+  echo
+  _list=$( systemctl --no-legend --no-pager )
+  for mytype in $( awk '{ print $1 }' <<< "$_list" | grep '\.' | rev| cut -f 1 -d '.' | rev | grep -v '[^a-z]' | sort -u )
+  do
+    echo "---------- $mytype"
+    grep "\.${mytype}" <<< "$_list"
+    echo
+  done
+  exit 0
+fi
+
+# --- list service units
+if ph.hasParamoption "s" "$@" ; then
+  echo "List of service units:"
+  echo
+  systemctl --no-legend --no-pager --type service
+  exit 0
+fi
+
+# --- check given unit
+_unit="${1}"
+_status=$( systemctl --no-pager -l status "${_unit}" 2>&1 )
 
 if ! grep "Active: active (running) " <<< "${_status}" >/dev/null; then
     ph.setStatus critical
diff --git a/docs/20_Checks/check_systemdunit.md b/docs/20_Checks/check_systemdunit.md
index a73a107b9e3c717e77530d2ba4772de3e7973b1b..e534d153dabb90a07b7307804762a754ffeed7aa 100644
--- a/docs/20_Checks/check_systemdunit.md
+++ b/docs/20_Checks/check_systemdunit.md
@@ -16,7 +16,7 @@ A unit is everything listed by systemctl command - services, timers, targets, ..
 ______________________________________________________________________
 
 CHECK_SYSTEMDUNIT
-v1.0
+v1.1
 
 (c) Institute for Medical Education - University of Bern
 Licence: GNU GPL 3
@@ -30,21 +30,53 @@ The status is unknown if the command systemctl is not found.
 The status is critical if the service does not exist or is not running.
 
 SYNTAX:
-  check_systemdunit [-h] UNIT
+  check_systemdunit [-h|-l|-s] UNIT
 
 OPTIONS:
+
   -h     this help
+  -l     list all units
+  -s     list service units
+
   UNIT   Name of a unit - see output of 'systemctl' 
 
 EXAMPLES:
 
-  check_systemdunit mysql.service
-         show status of service mysql
+  check_systemdunit -s
+         list all existing services. For a unit check you need to add the name
+         in the 1st column.
+
+  check_systemdunit nginx.service
+         show status of nginx webservice
 
 ```
 
 ## Examples
 
+### List services
+
+You maybe want to start to get a list of services to pick an existing one that you wanna check periodically.
+
+You can use ``systemctl --no-legend --no-pager --type service`` or ``$ ./check_systemdunit -s``
+
+```txt
+List of service units:
+
+  alsa-restore.service                                  loaded active exited  Save/Restore Sound Card State
+  apparmor.service                                      loaded active exited  Load AppArmor profiles
+  avahi-daemon.service                                  loaded active running Avahi mDNS/DNS-SD Stack
+  bluetooth.service                                     loaded active running Bluetooth service
+  clamav-daemon.service                                 loaded active running Clam AntiVirus userspace daemon
+  clamav-freshclam.service                              loaded active running ClamAV virus database updater
+  colord.service                                        loaded active running Manage, Install and Generate Color Profiles
+  cronie.service                                        loaded active running Periodic Command Scheduler
+  ...
+```
+
+### Check a service
+
+To check a single service you need to add the unit name in the 1st column.
+
 ``$ ./check_systemdunit nginx`` returns
 
 ```txt
@@ -67,3 +99,7 @@ If a service does not exist: ``./check_systemdunit justadummy`` returns
 ```txt
 CRITICAL: Unit justadummy.service could not be found.
 ```
+
+### Other units
+
+With ``$ ./check_systemdunit -l`` you get a grouped list of all unit types. check_systemdunit handles all types - not only services.