# Remove some system services that don't make sense in live sessions. # The user can add more items by declaring space separated RM_SYSTEM_SERVICES # or RM_THIN_SYSTEM_SERVICES lists in lts.conf. # The RM_THIN_SYSTEM_SERVICES list is ignored by fat clients. # KEEP_SYSTEM_SERVICES is a space separated whitelist of services. allowed_services() { local service echo "$@" | sed 's/#.*//' | while read service; do case " $KEEP_SYSTEM_SERVICES " in *" $service "*) ;; *) echo -n " $service" ;; esac done } # $RM_SYSTEM_SERVICES are removed for all clients rm_services="$(allowed_services "$RM_SYSTEM_SERVICES alsa-restore # Restore sound card(s') mixer state(s) alsa-store # Save sound card(s') mixer state(s) dnsmasq # A lightweight DHCP and caching DNS server exim4 # exim4 Mail Transport Agent grub-common # Record successful boot for GRUB lightdm # Light Display Manager lvm2-lvmetad # LVM2 metadata daemon mdadm # MD monitoring daemon ModemManager # Modem manager modemmanager # Modem manager (older versions) nbd-client # Network Block Device client (we use nbd-disconnect) nbd-server # Network Block Device server plymouth-stop # Hide the splash screen rfkill-store # Store software rfkill state shared-folders # Shared folders service ssh # OpenSSH server tty2 # Getty tty3 # Getty tty4 # Getty tty5 # Getty tty6 # Getty unattended-upgrades # Check if unattended upgrades are being applied urandom # Save and restore random seed between restarts x2goserver # X2Go daemon responsible for post-session clean-ups ")" # $RM_THIN_SYSTEM_SERVICES are removed for thin clients if ! boolean_is_true "$LTSP_FATCLIENT"; then rm_services="$rm_services $(allowed_services "$RM_THIN_SYSTEM_SERVICES accounts-daemon # Accounts Service acpid # ACPI daemon apparmor # AppArmor initialization apport # Automatic crash report generation atd # Deferred execution scheduler avahi-daemon # mDNS/DNS-SD daemon bluetooth # Bluetooth daemon brltty # Braille terminal driver cgmanager # Cgroup management daemon cups # CUPS Printing spooler and server cups-browsed # CUPS browse daemon kerneloops # Collects and submits kernel crash signatures network-manager # Network connection manager NetworkManager # Network Manager NetworkManager-wait-online # Network Manager Wait Online NetworkManager-script-dispatcher # Network Manager Script Dispatcher Service polkitd # Authenticate and Authorize Users to Run Privileged Tasks systemd-logind # Login Service teamviewerd # TeamViewer remote control daemon ufw # Uncomplicated Firewall upstart-socket-bridge # Bridge socket events into upstart virtualbox # VirtualBox Linux kernel module vboxweb # VirtualBox Web Service whoopsie # crash report submission daemon wpa_supplicant # WPA supplicant ")" # For low RAM thin clients, disable whatever isn't essential for booting memtotal=$(awk '/^MemTotal:/ { print int($2/1024) }' /proc/meminfo) RM_RAM_THRESHOLD=${RM_RAM_THRESHOLD:-200} if [ "$memtotal" -le "$RM_RAM_THRESHOLD" ]; then rm_services="$rm_services $(allowed_services "$RM_LOW_RAM_SERVICES anacron # anac(h)ronistic cron #dbus # D-Bus system message bus - systemd depends on it cron # Regular background program processing daemon getty@ # Getty on %I rsyslog # System logging daemon tty1 # Getty upstart-udev-bridge # Bridge udev events into upstart ")" fi fi # We don't need NFS-related services if we're not using nfs if ! grep -q nfs /etc/fstab; then rm_services="$rm_services $(allowed_services " gssd # rpcsec_gss daemon idmapd # NFSv4 id <-> name mapper nfs-blkmap # pNFS block layout mapping daemon nfs-kernel-server # Kernel NFS server support nfs-mountd # NFS Mount Daemon nfs-server # NFS server and services nfs-utils # NFS server and client services statd # NSM status monitor ")" fi for service in $rm_services; do rm -f /etc/rc?.d/???"$service" "/etc/init.d/$service" "/etc/init/$service.conf" "/lib/systemd/system/$service."* "/etc/systemd/system/$service."* done