Wie verhindere ich, dass Linux-Dienste automatisch gestartet werden?

11

Ich habe kürzlich von Windows auf Linux (xubuntu) migriert.

Ich bin Entwickler und habe alles installiert, was ich brauche, LAMP. In Windows habe ich alle unnötigen Dienste deaktiviert - ich brauche nicht, dass der Apache- oder MySQL-Dienst ständig ausgeführt wird. Wann immer ich MySQL brauchte, benutzte ich:

net start mysql

Wie mache ich dasselbe unter Linux?

  1. Nicht benötigte Daemons für den automatischen Start deaktivieren?
  2. Starten Sie sie nur, wenn ich sie brauche?
Aviv
quelle
3
Ich denke, Sie sollten die genaue Version von Ubuntu angeben, die Sie verwenden. Neue Ubuntu-Versionen verwenden Upstart, das seine eigenen Fallstricke hat.
Test
Bearbeiten: Ich verwende Xubuntu neueste Version 10.04, aber ich möchte nicht und GUI dafür verwenden, nur vom Terminal. Sieht so aus, als hätte @prhq etwas in seiner Antwort. Was ist Emporkömmling?
Aviv
Gehört woanders hin, entweder unter Serverfehler oder unter Unix. Trotzdem nützlich.
Ripper234

Antworten:

10

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 den Befehl "Runlevel" als root 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 in Ordnung. Beachten Sie jedoch, dass Sie andere Dienste entfernen müssen.

hultqvist
quelle
3
Dies ist ziemlich irreführend, selbst wenn Sie "die meisten Distributionen" sagten. Ich würde Ihr Rezept als distro-spezifisch qualifizieren.
Test
Was hast du gedacht? Ich kann nur an ArchLinux denken (aber diese Benutzer sollten bereits wissen, was sie tun). Natürlich haben einige Distributionen spezielle Werkzeuge, aber die obige Technik funktioniert auch mit ihnen.
Hultqvist
Sehr seltsam, ich kann eine Datei namens S91apache2 im Verzeichnis /etc/rc2.d sehen, ich denke, sie startet den Apache2 ... aber ich kann keine Datei bezüglich MySQL finden. Wo kann ich mehr über diese automatisch startenden Daemons erfahren?
Aviv
Dann ist der MySQL-Server möglicherweise nicht für den automatischen Start konfiguriert. Diese Seite scheint
hultqvist
Beachten Sie, dass sich das Verzeichnis unter * BSD und dem Slackware-Baum befindet /etc/rc.d/.
new123456
13

Für Ubuntu-Versionen, die systemd (15.04 und höher) verwenden, verwenden Sie:

systemctl disable service

Dies wird den Job machen. Der Dienst wird deaktiviert und nach einem Neustart nicht neu gestartet. Um es vorübergehend zu aktivieren, starten Sie einfach den Dienst. Nicht aktivieren .

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 dem Neustart nicht bestehen

systemctl stop service- Verwenden Sie diese Option, um einen Dienst zu beenden. Bleibt nach dem Neustart nicht bestehen

systemctl restart service - Verwenden Sie diese Option, um einen Dienst neu zu starten

systemctl status service- Zeigt den Status eines Dienstes an. Gibt an, ob gerade ein Dienst ausgeführt wird.

systemctl enable service- Schaltet den Dienst beim nächsten Neustart oder beim nächsten Startereignis ein. Es bleibt nach dem Neustart bestehen.

systemctl disable service- Schaltet den Dienst beim nächsten Neustart oder beim nächsten Stopp aus. Es bleibt nach dem Neustart bestehen.

Nandesh
quelle
2
Schade, dass es nicht die akzeptierte Antwort ist :). Danke, ich habe diesen Befehl total vergessen.
Nordes
8

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 gepusht wird und in immer mehr Distributionen verfügbar wird).

SysVinit Service Management-Skripte befinden sich in /etc/init.d. Sie können den Dienst mit starten und mit /etc/init.d/SERVICENAME startbeenden /etc/init.d/SERVICENAME stop. Ob der Dienst beim Booten automatisch gestartet wird, hängt vom Vorhandensein symbolischer Links ab, in /etc/rc?.ddenen ?sich eine Ziffer von 2bis 5( Runlevel ) befindet. Der einfachste Weg, um zu verhindern, dass ein Dienst beim Booten automatisch gestartet wird, ist die Verwendung update-rc.d SERVICENAME disable.

Konfigurationsdateien für das Upstart-Service-Management befinden sich in /etc/init. Sie können den Dienst mit starten und mit start SERVICENAMEbeenden stop SERVICENAME. Die Konfigurationsdatei /etc/init/SERVICENAME.confenthält eine Zeile, die angibt, wann der Dienst gestartet werden soll : start on …. Eine einfache Möglichkeit, diese Dienste zu deaktivieren, besteht darin, diese Zeile in zu ä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 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.

Gilles 'SO - hör auf böse zu sein'
quelle
Ist das Bearbeiten der servicename.conf wirklich der bevorzugte Weg? Besonders wenn Updates diese Konfigurationsdateien theoretisch aktualisieren und Ihre Änderungen überschreiben können
Masse
@ Masse: Es ist nicht immer der bevorzugte Weg, aber es hat den Vorteil, immer zu arbeiten. Einige Dienste lesen eine Datei ein /etc/defaultund haben dort eine START_FOOOption, die Sie deaktivieren können, aber viele erwarten, dass sie ausgeführt werden, wenn sie installiert sind. Updates werden Ihre Änderungen nicht ohne Aufforderung überschreiben, da dies alles Conffiles sind.
Gilles 'SO - hör auf böse zu sein'
Beeindruckend. Dies scheint ein großer Rückschritt zu sein.
Masse
@Masse: Conffiles sollen vom Administrator bearbeitet werden. Wenn Sie dies jedoch nicht möchten, können Sie dpkg-divertdie Servicedatei auch umbenennen. Wenn Sie dies jedoch tun, können Sie den Dienst nicht explizit starten.
Gilles 'SO - hör auf böse zu sein'