it-swarm.com.de

Ubuntu 12.04: So deaktivieren Sie einen Daemon-Prozess beim Start

Normalerweise benutze ich service start/stop oder initctl start/stop um einen Daemon-Prozess zu starten oder zu stoppen, aber jetzt suche ich, einen Daemon-Prozess daran zu hindern, beim Start zu starten mysqld.

Derzeit benenne ich /etc/init/mysql.conf bis /etc/init/mysql.conf.bak aber nachdem ich ein wenig über systemd gelesen hatte, erfuhr ich, dass es enable & disable Option für die obige Aufgabe.

Gibt es in Ubuntu 12.04 etwas Ähnliches mit upstart?.

23
RanRag

Sie können Dienste deaktivieren, indem Sie den folgenden Befehl ausführen:

Sudo update-rc.d -f <service name> disable

Manpage Auszug:

Bei Ausführung mit den Deaktivierungsoptionen [S | 2 | 3 | 4 | 5] ändert update-rc.d vorhandene Runlevel-Links für das Skript /etc/init.d/name, indem Startlinks umbenannt werden, um Links mit einer gleichen Sequenznummer zu stoppen auf die Differenz von 100 minus der ursprünglichen Sequenznummer.

26
Mark Cohen

Der richtige Weg, um den Dienst zu deaktivieren und neu zu starten, besteht darin, eine XX.override-Datei zu erstellen.

echo 'manual' > /etc/init/mysqld.override

Auf diese Weise wird der Upstart-Dienst nicht automatisch gestartet

20
daisy

@ warl0ck hat es richtig; wollte hinzufügen, dass diese Informationen in der Upstart-Dokumentation recht gut dokumentiert sind: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

Speziell:

Mit Upstart 1.3 können Sie Override-Dateien und die manuelle Zeilengruppe verwenden, um auf einfachere Weise dasselbe Ergebnis zu erzielen [27]:

# echo "manual" >> /etc/init/myjob.override

Beachten Sie, dass Sie auf diese Weise den gleichen Effekt erzielen können:

# echo "manual" >> /etc/init/myjob.conf

Wenn Sie jedoch die Überschreibungsfunktion verwenden, können Sie die ursprüngliche Jobkonfigurationsdatei unberührt lassen.

Um zum ursprünglichen Verhalten zurückzukehren, löschen oder benennen Sie die Überschreibungsdatei um (oder entfernen Sie die manuelle Zeilengruppe aus Ihrer ".conf" -Datei).

7
Mark Glossop

Es gibt auch eine nette Software, die dabei hilft. Es heißt rcconf.

Laden Sie es einfach herunter mit:

Sudo apt-get install rcconf

und benutze es mit dem Befehl

rcconf

Sie erhalten eine nette (Befehlszeilen-) Schnittstelle zum Deaktivieren/Aktivieren von Diensten.

5
delh

Navigieren Sie zu /etc/rc2.d Und benennen Sie um, was Sie möchten nicht, um es beim Start auszuführen: Ändern Sie das (Anfangsbuchstabe, Großbuchstaben) "S" in ein "K" (z. B. S02mysql bis K02mysql). Wenn Sie es sich anders überlegen, kehren Sie es einfach um. Ich denke, die 2 bezieht sich auf Runlevel. In diesem Fall ist 2 die Standard-Mehrbenutzer-Runlevel. Wahrscheinlich haben Sie dort die meisten Dinge für den täglichen Computereinsatz.

Bearbeiten: Lesen Sie den Kommentar von James O'Gorman unten.

1
Emanuel Berg

Bei Upstart liegt die Dienstkonfiguration in Dateien in /etc/init/. Zum Beispiel wird ssh mit einer Konfigurationsdatei gesteuert /etc/init/ssh.conf

Diese Datei gibt die "Ereignisse" an, die den Start starten, um den "Job" zu starten.

Um zu verhindern, dass ein Dienst automatisch gestartet wird, kann eine von mehreren Methoden verwendet werden:
A) Benennen Sie die Datei service.conf so um, dass sie nicht mit .conf endet
B) Kommentieren Sie die Zeile "Start on" aus der Datei service.conf aus.

In neueren Versionen von upstart (mindestens seit Version 1.3) können Sie den Online-Start auch mithilfe einer service.override-Datei überschreiben, sodass Sie Folgendes verwenden können:
# echo manual > /etc/init/service.override

Zuletzt können Sie das Schlüsselwort "manual" am Ende der Konfigurationsdatei des Dienstes hinzufügen, z. B.:
# echo manual >> /etc/init/service.conf

Beachten Sie, dass dies den laufenden Dienst nicht "stoppt", sondern lediglich verhindert, dass er automatisch gestartet wird. Während Sie auf "manuellen" Start eingestellt sind, steuern Sie den Dienst mit initctl, z. B. um den SSH-Daemon zu stoppen und zu starten:
# initctl stop ssh
# initctl start ssh

Die wohl beste Dokumentation für Upstart finden Sie unter http://upstart.ubuntu.com/cookbook/

Abschnitt 11.44 behandelt das Deaktivieren des automatischen Starts eines Dienstes hier: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

0
Johan

Nun, ich muss sagen, dass die Aussage

echo "manual" >> /etc/init/myjob.override

ist ein wenig irreführend, weil es bedeutet, die Überschreibungsdatei anzuhängen. Ich habe dies am 14.04 mit dem Netzwerk-Manager getestet und das Folgende hat nicht funktioniert

vim /etc/init/network-manager.override:
start
manual

Dies funktionierte jedoch

vim /etc/init/network-manager.override:
#start
manual

Also, IMO, das initctl sucht nach der ersten unkommentierten Zeile und führt sie aus. Vielleicht irre ich mich, aber das waren meine Testergebnisse. Beiträge sind willkommen.

0
infoclogged