1 | # Remove some system services that don't make sense in live sessions. |
---|
2 | # The user can add more items by declaring space separated RM_SYSTEM_SERVICES |
---|
3 | # or RM_THIN_SYSTEM_SERVICES lists in lts.conf. |
---|
4 | # The RM_THIN_SYSTEM_SERVICES list is ignored by fat clients. |
---|
5 | # KEEP_SYSTEM_SERVICES is a space separated whitelist of services. |
---|
6 | |
---|
7 | allowed_services() { |
---|
8 | local service |
---|
9 | |
---|
10 | echo "$@" | sed 's/#.*//' | while read service; do |
---|
11 | case " $KEEP_SYSTEM_SERVICES " in |
---|
12 | *" $service "*) |
---|
13 | ;; |
---|
14 | *) |
---|
15 | echo -n " $service" |
---|
16 | ;; |
---|
17 | esac |
---|
18 | done |
---|
19 | } |
---|
20 | |
---|
21 | # $RM_SYSTEM_SERVICES are removed for all clients |
---|
22 | rm_services="$(allowed_services "$RM_SYSTEM_SERVICES |
---|
23 | alsa-restore # Restore sound card(s') mixer state(s) |
---|
24 | alsa-store # Save sound card(s') mixer state(s) |
---|
25 | dnsmasq # A lightweight DHCP and caching DNS server |
---|
26 | exim4 # exim4 Mail Transport Agent |
---|
27 | grub-common # Record successful boot for GRUB |
---|
28 | lightdm # Light Display Manager |
---|
29 | lvm2-lvmetad # LVM2 metadata daemon |
---|
30 | mdadm # MD monitoring daemon |
---|
31 | ModemManager # Modem manager |
---|
32 | modemmanager # Modem manager (older versions) |
---|
33 | nbd-client # Network Block Device client (we use nbd-disconnect) |
---|
34 | nbd-server # Network Block Device server |
---|
35 | plymouth-stop # Hide the splash screen |
---|
36 | rfkill-store # Store software rfkill state |
---|
37 | shared-folders # Shared folders service |
---|
38 | ssh # OpenSSH server |
---|
39 | tty2 # Getty |
---|
40 | tty3 # Getty |
---|
41 | tty4 # Getty |
---|
42 | tty5 # Getty |
---|
43 | tty6 # Getty |
---|
44 | unattended-upgrades # Check if unattended upgrades are being applied |
---|
45 | urandom # Save and restore random seed between restarts |
---|
46 | x2goserver # X2Go daemon responsible for post-session clean-ups |
---|
47 | ")" |
---|
48 | |
---|
49 | # $RM_THIN_SYSTEM_SERVICES are removed for thin clients |
---|
50 | if ! boolean_is_true "$LTSP_FATCLIENT"; then |
---|
51 | rm_services="$rm_services $(allowed_services "$RM_THIN_SYSTEM_SERVICES |
---|
52 | accounts-daemon # Accounts Service |
---|
53 | acpid # ACPI daemon |
---|
54 | apparmor # AppArmor initialization |
---|
55 | apport # Automatic crash report generation |
---|
56 | atd # Deferred execution scheduler |
---|
57 | avahi-daemon # mDNS/DNS-SD daemon |
---|
58 | bluetooth # Bluetooth daemon |
---|
59 | brltty # Braille terminal driver |
---|
60 | cgmanager # Cgroup management daemon |
---|
61 | cups # CUPS Printing spooler and server |
---|
62 | cups-browsed # CUPS browse daemon |
---|
63 | kerneloops # Collects and submits kernel crash signatures |
---|
64 | network-manager # Network connection manager |
---|
65 | NetworkManager # Network Manager |
---|
66 | NetworkManager-wait-online # Network Manager Wait Online |
---|
67 | NetworkManager-script-dispatcher # Network Manager Script Dispatcher Service |
---|
68 | polkitd # Authenticate and Authorize Users to Run Privileged Tasks |
---|
69 | systemd-logind # Login Service |
---|
70 | teamviewerd # TeamViewer remote control daemon |
---|
71 | ufw # Uncomplicated Firewall |
---|
72 | upstart-socket-bridge # Bridge socket events into upstart |
---|
73 | virtualbox # VirtualBox Linux kernel module |
---|
74 | vboxweb # VirtualBox Web Service |
---|
75 | whoopsie # crash report submission daemon |
---|
76 | wpa_supplicant # WPA supplicant |
---|
77 | ")" |
---|
78 | |
---|
79 | # For low RAM thin clients, disable whatever isn't essential for booting |
---|
80 | memtotal=$(awk '/^MemTotal:/ { print int($2/1024) }' /proc/meminfo) |
---|
81 | RM_RAM_THRESHOLD=${RM_RAM_THRESHOLD:-200} |
---|
82 | if [ "$memtotal" -le "$RM_RAM_THRESHOLD" ]; then |
---|
83 | rm_services="$rm_services $(allowed_services "$RM_LOW_RAM_SERVICES |
---|
84 | anacron # anac(h)ronistic cron |
---|
85 | #dbus # D-Bus system message bus - systemd depends on it |
---|
86 | cron # Regular background program processing daemon |
---|
87 | getty@ # Getty on %I |
---|
88 | rsyslog # System logging daemon |
---|
89 | tty1 # Getty |
---|
90 | upstart-udev-bridge # Bridge udev events into upstart |
---|
91 | ")" |
---|
92 | fi |
---|
93 | fi |
---|
94 | |
---|
95 | # We don't need NFS-related services if we're not using nfs |
---|
96 | if ! grep -q nfs /etc/fstab; then |
---|
97 | rm_services="$rm_services $(allowed_services " |
---|
98 | gssd # rpcsec_gss daemon |
---|
99 | idmapd # NFSv4 id <-> name mapper |
---|
100 | nfs-blkmap # pNFS block layout mapping daemon |
---|
101 | nfs-kernel-server # Kernel NFS server support |
---|
102 | nfs-mountd # NFS Mount Daemon |
---|
103 | nfs-server # NFS server and services |
---|
104 | nfs-utils # NFS server and client services |
---|
105 | statd # NSM status monitor |
---|
106 | ")" |
---|
107 | fi |
---|
108 | |
---|
109 | for service in $rm_services; do |
---|
110 | rm -f /etc/rc?.d/???"$service" "/etc/init.d/$service" "/etc/init/$service.conf" "/lib/systemd/system/$service."* "/etc/systemd/system/$service."* |
---|
111 | done |
---|