it-swarm.com.de

Wie kann ich Dienste aktivieren oder deaktivieren?

Ich habe gelesen, wie man Dienste in Ubuntu aktiviert und deaktiviert, und es scheint, dass es verschiedene Möglichkeiten gibt, sie zu verwalten.

Die erste Methode, die ich gefunden habe, ist update-rc.d, um neue Dienste zum Start hinzuzufügen, die auf den Ordner /etc/init.d und dessen Inhalt abzielen.

Die andere, die ich gefunden habe, ist die Bearbeitung von .conf -Dateien im Ordner /etc/init.

Was ist die empfohlene Methode zum Aktivieren/Deaktivieren/Hinzufügen von Diensten und warum?

Könnten Sie bitte ein kurzes, kugelsicheres, schrittweises Beispiel geben, wie man einen Dienst in Ubuntu hinzufügt und aktiviert und deaktiviert?

816
NES

Es gibt Dienste, die über die GUI (wie die Anwendung startup) oder das Terminal aktiviert/deaktiviert werden können.

Für das Terminal haben Sie mehrere Möglichkeiten. Öffnen Sie zunächst ein Terminal (geben Sie beispielsweise "terminal" in den Bindestrich ein und öffnen Sie es). Dann:

Temporäres Aktivieren/Deaktivieren von Diensten

Um Dienste vorübergehend anzuhalten und zu starten (Aktiviert/deaktiviert sie nicht für zukünftige Starts), können Sie service SERVICE_NAME eingeben. Zum Beispiel:

  • Sudo service Apache2 stop (Will STOP den Apache-Dienst bis zum Neustart oder bis Sie ihn erneut starten).

  • Sudo service Apache2 start (Will START der Apache-Dienst, sofern er zuvor gestoppt wurde.).

  • service Apache2 status (Zeigt den STATUS des Dienstes an, wenn dieser entweder aktiviert ist/ausgeführt wird oder deaktiviert ist/NICHT ausgeführt wird.).

  • Sudo service Apache2 restart (Will RESTART the service. Dies wird am häufigsten verwendet, wenn Sie eine Konfigurationsdatei geändert haben. In diesem Fall, wenn Sie entweder ein PHP geändert haben. Konfiguration oder eine Apache-Konfiguration. Durch einen Neustart müssen Sie nicht mit zwei Befehlszeilen anhalten/beginnen.)

  • service Apache2 (Da Sie in diesem Fall die auszuführende AKTION für den Dienst nicht erwähnt haben, werden alle für diesen bestimmten Dienst verfügbaren Optionen angezeigt.) Dieser Aspekt variiert je nach Dienst, z. B. mit MySQL Ich würde nur erwähnen, dass es einen Parameter fehlt. Bei anderen Diensten wie Netzwerkdiensten wird die kleine Liste aller verfügbaren Optionen erwähnt.


SYSTEMD

Ab Ubuntu 15.04 wird Upstart zugunsten von Systemd nicht mehr empfohlen. Mit Systemd zur Verwaltung der Dienste können wir Folgendes tun:

systemctl start SERVICE - Zum Starten eines Dienstes. 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 diesen Befehl, um einen Dienst neu zu starten

systemctl reload SERVICE - Wenn der Dienst dies unterstützt, werden die zugehörigen Konfigurationsdateien erneut geladen, ohne dass ein Prozess unterbrochen wird, der den Dienst verwendet.

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 - Deaktiviert den Dienst beim nächsten Neustart oder beim nächsten Stoppereignis. Es bleibt nach dem Neustart bestehen.

systemctl is-enabled SERVICE - Überprüfen Sie, ob ein Dienst derzeit so konfiguriert ist, dass er beim nächsten Neustart gestartet wird oder nicht.

systemctl is-active SERVICE - Überprüfen Sie, ob ein Dienst gerade aktiv ist.

systemctl show SERVICE - Zeigt alle Informationen zum Dienst an.

Sudo systemctl mask SERVICE - Deaktivieren Sie einen Dienst vollständig, indem Sie ihn mit /dev/null verknüpfen. Sie können den Dienst nicht manuell starten oder aktivieren.

Sudo systemctl unmask SERVICE - Entfernt die Verknüpfung zu /dev/null und stellt die Fähigkeit wieder her, den Dienst zu aktivieren und/oder manuell zu starten.


UPSTART (veraltet seit 15.04)

Wenn wir die offizielle Upstart-Methode verwenden möchten (Beachten Sie, dass momentan nicht alle Dienste auf Upstart konvertiert wurden), können wir die folgenden Befehle verwenden:

status SERVICE - Hier erfahren wir, ob ein konvertierter Dienst ausgeführt wird oder nicht. Beachten Sie, dass dies zugunsten von start, stop, status & restart veraltet ist. Es wird uns auch mitgeteilt, ob ein Dienst noch nicht auf upstart konvertiert wurde:

Ein konvertierter Dienst gibt normalerweise den aktuellen Status (Starten, Ausführen, Stoppen ...) und die Prozess-ID aus. Ein nicht konvertierter Dienst würde einen Fehler bezüglich eines nbekannten Jobs ausgeben.

Einige Verknüpfungen funktionieren möglicherweise nur mit dem obigen Befehl service, nicht jedoch mit den folgenden Befehlen, es sei denn, sie werden zu 100% in Upstart-Dienste konvertiert:

  • START - Sudo start mysql

  • STOP - Sudo stop mysql

  • RESTART - Sudo restart mysql

  • STATUS - Sudo status smbd

Aktivieren/Deaktivieren eines Dienstes

Um zu verhindern, dass ein Dienst dauerhaft gestartet oder gestoppt wird, müssen Sie folgende Schritte ausführen:

echo manual | Sudo tee /etc/init/SERVICE.override

die Zeilengruppe manual verhindert, dass Upstart den Dienst beim nächsten Start automatisch lädt. Jeder Dienst mit der Endung .override hat Vorrang vor der ursprünglichen Dienstdatei. Sie können den Dienst anschließend nur manuell starten. Wenn Sie dies nicht möchten, löschen Sie einfach den .override. Zum Beispiel:

echo manual | Sudo tee /etc/init/mysql.override

Versetzt den MySQL-Dienst in den manual -Modus. Wenn Sie dies nicht möchten, können Sie dies anschließend einfach tun

Sudo rm /etc/init/mysql.override

und Neustart, damit der Dienst automatisch neu gestartet wird. Um einen Dienst zu aktivieren, müssen Sie ihn am häufigsten installieren. Wenn Sie Apache, Nginx, MySQL oder andere Programme installieren, werden diese nach Abschluss der Installation automatisch gestartet und bei jedem Neustart des Computers neu gestartet. Durch Deaktivieren wird, wie oben erwähnt, der Dienst manual verwendet.

823
Luis Alvarado

Derzeit gibt es drei verschiedene Möglichkeiten, um Software als Dienst in Ubuntu zu starten: SysV , Upstart und systemd . Ein Dienst wird hier als ein Programm definiert, das vom System im Hintergrund ausgeführt wird, im Gegensatz zu einem Programm, das direkt vom Benutzer gestartet und ausgeführt wird.

SysV

Die herkömmliche Methode zum Starten von Diensten unter Linux bestand darin, ein Skript in /etc/init.d zu platzieren und es dann mit dem Befehl update-rc.d (oder in RedHat-basierten Distributionen mit dem Befehl chkconfig) zu aktivieren oder zu deaktivieren.

Dieser Befehl verwendet eine etwas komplizierte Logik, um in /etc/rc#.d Symlinks zu erstellen, die die Reihenfolge beim Starten von Diensten steuern. Wenn Sie ls /etc/rc2.d ausführen, können Sie die Reihenfolge sehen, in der Dienste mit einem Dateinamen wie K##xxxx beendet und mit Dateinamen S##xxxx gestartet werden. Der ## in S##xxxx bedeutet eine "Startreihenfolge" für den Service xxxx. Umgekehrt bedeutet der ## in K##xxxx den Kill-Befehl für den Dienst xxxx.

Ein Hauptproblem bei SysV war, dass beim Booten des Systems alles musste seriell nacheinander ausgeführt werden, was die Bootzeiten des Systems sehr verlangsamte . Es wurden Versuche unternommen, dies zu parallelisieren, aber sie waren willkürlich und schwer auszunutzen. Dies war der Hauptgrund, warum Upstart erstellt wurde.

Emporkömmling

Upstart verwendet Jobdefinitionsdateien in /etc/init, um zu definieren, bei welchen Ereignissen ein Dienst gestartet werden soll. Während das System bootet, verarbeitet upstart verschiedene Ereignisse und kann dann mehrere Dienste gleichzeitig starten. Auf diese Weise können sie die Ressourcen des Systems voll ausnutzen, indem sie beispielsweise einen festplattengebundenen Dienst starten, während ein anderer CPU-gebundener Dienst ausgeführt wird oder während das Netzwerk auf die Zuweisung einer dynamischen IP-Adresse wartet.

Sie können alle Upstart-Jobdateien anzeigen, indem Sie ls /etc/init/*.conf ausführen.

Lassen Sie mich hier einfach anhalten und sagen: Wenn Sie nicht wissen, was ein Dienst ist oder was er tut, deaktivieren Sie ihn NICHT!

Nicht alle Dienste wurden auf Upstart konvertiert. Während ich in den letzten Monaten im Serverteam von Canonical gearbeitet habe, habe ich eine Reihe von konvertierten Auftragsdateien bearbeitet. Das Schönste ist, dass man damit das gesamte Skript "magic" loswerden und einfach eine neue Datei einfügen kann nur wenige Befehle hier und da, um genau zu definieren, wie der Dienst gestartet werden soll, und nichts weiter. Bisher wurden jedoch nur einige traditionelle Netzwerkdienste wie squid und samba konvertiert.

Ist ein Dienst einsatzbereit?

Um herauszufinden, ob ein Dienst auf einem Neustart basiert, können Sie den Statusbefehl ausführen:

status servicename

Wenn es sich um einen Startjob handelt, wird Folgendes angezeigt:

$ status statd
statd start/running, process 942

Wenn dies nicht der Fall ist, sehen Sie etwas Ähnliches:

$ status Apache2
status: Unknown job: Apache2

In diesem Fall wurde Apache2 nicht in upstart konvertiert. Um Apache2 zu deaktivieren, müssen Sie nur ausführen

Sudo update-rc.d Apache2 disable
Sudo service Apache2 stop

Deaktivieren Sie Dienste (Jobs) im Upstart

Upstart-Jobdefinitionen haben keinen update-rc.d -Befehl. Um den Job zu deaktivieren, müssen Sie die Jobdatei direkt bearbeiten, um sie zu deaktivieren. Hierfür gibt es zwei Möglichkeiten.

Wenn Sie es dennoch manuell starten möchten, müssen Sie die Bedingung start on auskommentieren. Angenommen, Sie möchten Samba installieren, aber nicht automatisch starten. Hier ist die Jobdatei (in natty):

description "SMB/CIFS File Server"
author      "Steve Langasek <[email protected]>"

start on local-filesystems
stop on runlevel [!2345]

respawn

pre-start script
    RUN_MODE="daemons"

    [ -r /etc/default/samba ] && . /etc/default/samba

    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }

    install -o root -g root -m 755 -d /var/run/samba
end script

exec smbd -F

Um Samba zu deaktivieren, können Sie einfach einen # vor den "start on local-filesystems" setzen. Beachten Sie, dass es beim Booten zwar nicht wieder gestartet wird, Sie es diesmal jedoch mit beenden müssen

Sudo service smbd stop

Wenn Sie jedoch niemals wollen, dass Samba startet, würde ich vorschlagen, das Paket tatsächlich zu entfernen. Wenn Sie jedoch möchten, dass es installiert, aber nicht startfähig ist, können Sie auch Folgendes tun:

mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled

Deaktivieren eines Dienstes mithilfe der Zeilengruppe "start/stop" (ab 11.04)

Ab der Version von upstart in 11.04 gibt es ein neues Schlüsselwort, das die Zeilengruppen start on und stop on deaktiviert: manual. Eine andere Möglichkeit, den Dienst ab 11.04 zu deaktivieren, ist:

echo 'manual' | Sudo tee /etc/init/mysql.override

# command from root Shell
echo manual >> /etc/init/mysql.override

Sie können eine override -Datei erstellen, um einen Dienst zu deaktivieren, ohne die Jobdefinition zu bearbeiten, indem Sie einfach das Schlüsselwort manual eingeben.

354
SpamapS

sysv-rc-conf

Versuchen Sie es mit sysv-rc-conf

Sudo apt-get install sysv-rc-conf

und um die Dienste zu verwalten, führen Sie aus

Sudo sysv-rc-conf

Welches wird interaktive Fenster wie folgt öffnen

enter image description here

Sie können weiter durch die Seiten navigieren, indem Sie Ctrl+n für die nächste Seite und Ctrl+p für die vorherige Seite verwenden. Sie können Dienste aktivieren und deaktivieren, indem Sie auf den gewünschten Runleveln SPACE auswählen.

Jobs-Admin

Eine andere Alternative wäre Jobs-Admin durch Installation durch

Sudo apt-get install jobs-admin

Das bietet auch GUI davon

jobs-admin preview

Um weitere Jobs anzuzeigen, müssen Sie das Kontrollkästchen Geschützte Jobs anzeigen in seinem Menü aktivieren.

chkconfig

Und dritte Option wäre chkconfig ,

Sudo apt-get install chkconfig

Sie kann über CLI chkconfig verwendet werden und zeigt eine Liste der Ein/Aus-Jobs an. Außerdem können wir Systemdienste mit chkconfig –list anzeigen.

Dienste können mit eingeschaltet werden

chkconfig <service> on

Dienste können mit deaktiviert werden

chkconfig <service> off

Und wir können sogar unseren eigenen Dienst hinzufügen, indem wir ein geeignetes Init-Skript mit geeigneten Überschriften verwenden.

chkconfig --add <service>

update-rc.d

Und eine andere Option kann verwiesen werden hier update-rc.d , kurz erklärt hier .

Beachten Sie, dass für Ubuntu Server 12.04 update-rc.danstelle von chkconfig verwendet wird.

129
atenz

Für diejenigen von uns, die Ubuntu über ssh ausführen, ist die beste Option rcconf - ein textbasiertes Programm:

Sudo apt-get install rcconf
Sudo rcconf

alt text

Navigieren Sie mit den Tabulatortasten und den Pfeiltasten und drücken Sie die Leertaste zum Aktivieren/Deaktivieren. Änderungen bleiben auch nach einem Neustart erhalten.

Screenshot aus diesem Blogpost , der auch sysv-rc-conf zeigt - ein ähnliches Tool, mit dem Sie auch den Runlevel festlegen können. (Für diejenigen, die sich genug für Runlevel interessieren, um sie zu ändern :)

Leider funktioniert rcconf nicht mit upstart (in /etc/init/* aufgeführte Dienste), sondern nur mit dem herkömmlichen Mechanismus (ls -l /etc/init.d/* - diejenigen, die keine symbolischen Links sind).

Glücklicherweise wurden viele der Dienste, die für das Einspielen auf einen Server relevant sind (Apache, Tomcat, mdadm, boinc-client ...), noch nicht auf den Upstart verschoben.

48
j-g-faustus

Ich fand heraus, dass es dieses GUI-Tool gibt, das BUM ähnelt, aber mit Upstart kompatibel ist:

  • Jobs-Admin

    Sudo apt-get install jobs-admin
    
18
Postadelmaga

Das Bearbeiten der vorhandenen Upstart-Konfigurationsdatei (wie oben beschrieben) ist keine gute Idee. Ein aktualisiertes Paket könnte eine aktualisierte Konfiguration enthalten, und Sie mussten Ihre Änderungen immer wieder wiederholen.

Wenn man sich man 5 init ansieht, findet man eine passendere Lösung: die Verwendung einer Override-Konfiguration. Kurzes Beispiel: Nehmen wir an, wir haben einen Dienst mit dem Namen "foobar", sodass es eine Datei mit dem Namen /etc/init/foobar.conf mit ihrer Startkonfiguration geben würde. Jetzt möchten Sie diese Datei nicht entfernen oder ändern - aber Sie möchten auch nicht, dass dieser Dienst ausgeführt wird? Platzieren Sie also eine überschreiben Datei daneben: /etc/init/foobar.override, die (optional die Überschrift mit der Beschreibung und) stattdessen die start on/stop on Zeilen enthält, mit denen Sie eine Zeile platzieren mit einem Wort: manual. Auf diese Weise weisen Sie upstart an, grundsätzlich den foobar.conf zu verwenden, aber die Startdefinition zu überschreiben, um diesen Dienst nur bei manueller Erzwingung zu starten (in unserem Beispiel über service foobar start).

12
Izzy

Es gibt auch den Boot-Up Manager .

So installieren Sie: Sudo apt-get install bum

Weitere Infos: http://www.marzocca.net/linux/bum.html

enter image description here

8
Sadi

Ich benutze Stacer. Es zeigt auch Dienste und Prozesse. Eine vollständige Toolbox für das GUI-System. https://github.com/oguzhaninan/Stacer

2
HDK Bouma