GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ubuntu – Dienste starten, stoppen, neu starten

Wenn eine Anwendung im Hintergrund ausgeführt wird, wird sie als Dienst bezeichnet. Diese sind für den Betrieb des Systems oder unserer Softwareanwendungen unerlässlich. Einige der allgemeinen Dienste, die Sie auf den meisten Servern finden, sind Apache, MySQL, NGINX usw. Wenn das System hochfährt, werden diese Dienste so konfiguriert, dass sie automatisch gestartet werden.

Ich verwende Ubuntu, um meine Websites zu hosten. Ich verwende auch MySQL, um alle meine Website-Daten zu speichern. Manchmal führe ich regelmäßige Updates durch und es ist wichtig, diese Dienste neu zu starten. In diesem Tutorial lernen wir verschiedene Möglichkeiten zum Starten, Stoppen und Neustarten von Diensten in Ubuntu kennen.

Verschiedene Möglichkeiten zum Starten, Beenden und Neustarten von Diensten unter Ubuntu

  1. systemctl-Befehl
  2. Dienstbefehl
  3. Init-Skripte

Ubuntu-Dienste mit systemctl starten, stoppen und neu starten

Dies ist die bevorzugte Methode zur Verwaltung von Ubuntu-Diensten. Wenn Sie den Dienstnamen nicht kennen, können Sie systemctl --all ausführen Befehl, um alle Dienste aufzulisten. Es können jedoch Hunderte von Diensten ausgeführt werden, daher ist es besser, die Liste mit grep zu filtern Befehl.

Versuchen wir, die Dienstnamen von MySQL und Apache HTTP-Server herauszufinden.

# systemctl --all | grep -i mysql
  mysql.service                                                                          loaded    active   running   MySQL Community Server                                                       
# systemctl --all | grep -i apache
  apache2.service                                                                        loaded    active   running   The Apache HTTP Server                                                       
# 

Der Name des MySQL-Dienstes lautet also „mysql.service“ und der Dienstname des Apache-HTTP-Servers lautet „apache2.service“.

Lassen Sie uns lernen, wie Sie diese Dienste mit dem Befehl systemctl verwalten.

1. Stoppen Sie den Dienst mit systemctl

# systemctl stop mysql.service 
#

Der Befehl gibt keine Ausgabe aus, wenn die Ausführung erfolgreich ist.

2. Überprüfen des Dienststatus mit systemctl

Wir können den Dienststatus mit dem folgenden Befehl überprüfen.

# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-05-02 17:39:22 UTC; 9s ago
 Main PID: 26948 (code=exited, status=0/SUCCESS)

3. Starten Sie den Dienst mit systemctl

# systemctl start mysql.service 
# 
# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 17:41:43 UTC; 3s ago
  Process: 30254 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 30233 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 30256 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─30256 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Beachten Sie, dass der Wert „Aktiv“ inaktiv (tot) war, als wir den Dienst gestoppt hatten. Nach dem Start des Dienstes wird er in aktiv (wird ausgeführt) geändert.

4. Dienst mit systemctl neu starten

# systemctl restart apache2.service
# systemctl status apache2.service 
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sat 2020-05-02 17:55:09 UTC; 8s ago

Tipp :Es ist nicht erforderlich, den vollständigen Dienstnamen mit dem Befehl systemctl zu verwenden. Wenn wir beispielsweise „systemctl restart mysql“ ausführen, wird automatisch „.service“ angehängt und der Befehl „systemctl restart mysql.service“ ausgeführt.

Ubuntu-Dienste mit dem Dienstbefehl verwalten

Wir können alle Dienste mit service --status-all auflisten Befehl. Verwenden Sie bei Bedarf den grep-Befehl, um den gesuchten Dienst herauszufiltern.

# service --status-all | grep mysql
 [ + ]  mysql
#

Im Dienstbefehl müssen wir zuerst den Dienstnamen und dann den auszuführenden Befehl angeben.

Dienst stoppen:

# service mysql stop

Dienst starten:

# service mysql start

Dienst neu starten:

# service mysql restart

Dienststatus prüfen:

# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:19:34 UTC; 39s ago
  Process: 31768 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 31746 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 31770 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─31770 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Ubuntu-Init-Skripte zum Verwalten von Diensten

Die Init-Skripte der Dienste befinden sich in /etc/init.d/ Verzeichnis. Wir können diese Skripte verwenden, um die Dienste zu verwalten. Es wird jedoch nicht mehr empfohlen, sie zu verwenden, und es ist besser, den Befehl systemctl zu verwenden.

Dienst stoppen:

# /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
#

Dienst starten:

# /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
#

Dienst neu starten:

# /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
#

Dienststatus prüfen:

# /etc/init.d/mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:26:30 UTC; 17s ago

Berechtigungsprobleme beim Starten/Stoppen von Diensten

Wenn Sie nicht als Root-Benutzer angemeldet sind, werden Sie bei den obigen Befehlen aufgefordert, das Root-Benutzer-Passwort zur Ausführung anzugeben. Wenn das falsche Passwort eingegeben wird, wird der Fehler „Authentifizierung fehlgeschlagen“ ausgegeben und der Befehl wird nicht ausgeführt.

Wenn Sie auf der sudoers-Liste stehen, können Sie diese Befehle als sudo-Benutzer ausführen. Wenn Sie nicht auf der Sudoers-Liste stehen, wird eine Fehlermeldung angezeigt, dass Sie nicht auf der Sudoers-Liste stehen, und der Vorfall wird gemeldet.

test@localhost:~$ systemctl stop mysql
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'mysql.service'.
Authenticating as: root
Password: 
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to stop mysql.service: Access denied
See system logs and 'systemctl status mysql.service' for details.
test@localhost:~$ sudo systemctl stop mysql
[sudo] password for test: 
test is not in the sudoers file.  This incident will be reported.
test@localhost:~$ 

Wenn Sie also einen Dienst verwalten möchten, stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen zum Ausführen dieser Befehle verfügen.

Schlussfolgerung

Wir haben verschiedene Möglichkeiten kennengelernt, Dienste auf Ubuntu zu verwalten. Der systemctl-Befehl ist der bevorzugte Ansatz zum Starten/Stoppen/Neustarten von Diensten unter Ubuntu. Die Init-Skripte geben jedoch den Befehlsstatus aus, was in Shell-Skripten nützlich sein kann, um sie auszuführen und sofort den Status des Befehls zu erhalten.


Linux
  1. Dienste auf systemd RHEL 7 Linux-Server starten, stoppen und neu starten

  2. So starten, stoppen und starten Sie Dienste auf einem dedizierten Linux-Server

  3. Plex Media Server Ubuntu/Debian manuell starten, neu starten und stoppen

  4. So starten, stoppen und starten Sie den Zimbra-Dienst neu

  5. Wie starte ich einen entfernten MySQL-Server, der unter Ubuntu Linux läuft?

So starten, stoppen oder starten Sie Dienste in Ubuntu 20.04 LTS neu

So starten, stoppen oder starten Sie Dienste in CentOS 8 neu

So starten, stoppen und starten Sie Dienste in Debian 10 neu

So starten Sie Dienste in der Ubuntu-Befehlszeile neu

So starten, stoppen oder starten Sie Dienste in Ubuntu neu

So starten, stoppen oder starten Sie Netzwerkdienste unter Rocky Linux 8