Müll in /etc/init.d/

Wenn man unter Gentoo Linux sein System einfach immer und immer wieder updated und es nie neu installiert kommt es vor, dass man sehr viel Müll am System mit sich mitschleppt. Heute will ich mich den Dateien in /etc/init.d/ widmen.

Unser Problemverzeichnis /etc/init.d/ ist mit Startup-Scripten besetzt, welche ihre Konfiguration aus /etc/conf.d/ beziehen. Das heisst, wir haben zwei Verzeichnisse, welche es zu überprüfen gilt.

Mein Ansatz basiert auf der Annahme, dass jedes Startup-Script einem Paket zugeordnet werden können muss.

#!/bin/bash
echo ===================================================
for each in /etc/{conf,init}.d/* ; do echo -n "$each " ; equery belongs -e "$eac
h" | fgrep / || echo '!!! ORPHAN !!!' ; done
echo ===================================================

Diese Zeilen in Bash besorgen uns eine Liste der einsamen Files, welche es zu löschen gilt. Der Output sieht wie folgt aus:

===================================================
/etc/conf.d/alsasound media-sound/alsa-utils-1.0.11
/etc/conf.d/apache2 net-www/apache-2.0.55-r2
/etc/conf.d/bluetooth net-wireless/bluez-utils-2.25
/etc/conf.d/bootmisc sys-apps/baselayout-1.12.0_pre19-r2
/etc/conf.d/bootsplash !!! ORPHAN !!!
.....

Es wird entweder das entsprechende Paket oder eben eine Meldung ausgegeben, dass das Paket eben Verwaist ist.

Was dabei nicht zu vergessen ist, ist rc-status zu überprüfen, damit die entsprechenden Scripts in keinem Runlevel mehr aufgerufen werden!!

Wenn wir die Liste dann haben, können wir sie unter Verwendung unseres Verstandes abarbeiten und die Files, welche wirklich nicht benötigt werden löschen.

Author:

Leave a Reply

Your email address will not be published. Required fields are marked *