
Ich bin vor kurzem von Windows auf Linux (xubuntu) umgestiegen.
Ich bin Entwickler und habe alles installiert, was ich brauche, LAMP. Unter Windows habe ich alle unnötigen Dienste deaktiviert – ich brauche den Apache- oder MySQL-Dienst nicht ständig laufen. Immer wenn ich MySQL brauchte, habe ich Folgendes verwendet:
net start mysql
Wie mache ich dasselbe unter Linux?
- Automatischen Start nicht benötigter Daemons deaktivieren?
- Nur starten, wenn ich sie brauche?
Antwort1
In den meisten Linux-Distributionen können Sie Dienste manuell starten/stoppen, indem Sie (als Root oder mit sudo) die folgenden Befehle ausführen:
# /etc/init.d/apache2 start
# /etc/init.d/mysqld start
# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop
Welche Dienste automatisch gestartet werden, wird durch Dateilinks in /etc/rc[runlevel].d/ gesteuert. Finden Sie Ihren aktuellen Runlevel, indem Sie als Root den Befehl "runlevel" verwenden.
# runlevel
N 2
Was hier auf Runlevel 2 hinweist. Jetzt müssen Sie nur noch die Dateien in /etc/rc2.d/ entfernen, die nicht gestartet werden sollen.
Das Entfernen von Apache und MySQL auf einem Desktop ist normalerweise kein Problem. Seien Sie jedoch vorsichtig, wenn Sie andere Dienste entfernen.
Antwort2
Für Ubuntu-Versionen, die systemd verwenden (15.04 und höher), verwenden Sie:
systemctl disable service
Damit wird der Dienst deaktiviert und nach einem Neustart nicht mehr neu gestartet. Um ihn vorübergehend zu aktivieren, einfachStartder Dienst. Nichtaktivieren.
Um den Dienstnamen zu finden, verwenden Sie
service --status-all
Andere Befehle sind:
systemctl start service
- Verwenden Sie es, um einen Dienst zu starten. Bleibt nach einem Neustart nicht bestehen.
systemctl stop service
- Verwenden Sie es, um einen Dienst zu stoppen. Bleibt nach einem Neustart nicht bestehen.
systemctl restart service
- Verwenden Sie es, um einen Dienst neu zu starten
systemctl status service
- Zeigt den Status eines Dienstes an. Gibt an, ob ein Dienst derzeit ausgeführt wird.
systemctl enable service
- Schaltet den Dienst beim nächsten Neustart oder beim nächsten Startereignis ein. Die Funktion bleibt nach dem Neustart bestehen.
systemctl disable service
- Schaltet den Dienst beim nächsten Neustart oder beim nächsten Stoppereignis aus. Dieser Dienst bleibt nach dem Neustart bestehen.
Antwort3
Ubuntu 10.04 befindet sich mitten in einem Übergang zwischen zwei Service-Management-Systemen: SysVinit (das traditionelle System, das von den meisten Linux-Distributionen verwendet wird) und Upstart (ein neueres System, das von Ubuntu vorangetrieben wird und in immer mehr Distributionen verfügbar wird).
SysVinit-Dienstverwaltungsskripte befinden sich in /etc/init.d
. Sie können den Dienst mit starten /etc/init.d/SERVICENAME start
und mit stoppen /etc/init.d/SERVICENAME stop
. Ob der Dienst beim Booten automatisch gestartet wird, hängt von der Anwesenheit symbolischer Links in ab, /etc/rc?.d
wobei ?
eine Ziffer von 2
bis ist 5
(dieRunlevel). Der einfachste Weg, den automatischen Start eines Dienstes beim Booten zu verhindern, ist die Verwendung von update-rc.d SERVICENAME disable
.
Die Konfigurationsdateien für die Upstart-Dienstverwaltung befinden sich in /etc/init
. Sie können den Dienst mit starten start SERVICENAME
und mit stoppen stop SERVICENAME
. Die Konfigurationsdatei /etc/init/SERVICENAME.conf
enthält eine Zeile, die angibt, wann der Dienst gestartet werden soll: start on …
. Diese Dienste können Sie ganz einfach deaktivieren, indem Sie diese Zeile in ändern start on never and (…)
. Wenn Sie die Datei nicht bearbeiten möchten, können Sie den Dienst auch vollständig deaktivieren, ohne das Verpackungssystem zu verwirren, indem Sie ihn so umbenennen, dass er nicht auf endet .conf
.
dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf
Ab Ubuntu 10.04 wird Apache mit einem SysVinit-Skript und Mysql mit einem Upstart-Skript geliefert.