Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie verwalte ich Systemd Services mit Systemctl?

systemd systemctl
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Der Standardsystem- und Service-Manager für die meisten Linux-Distributionen ist jetzt systemd.

Dieses systemd Prozess ersetzt die SysV init. Es wird als erster Prozess nach dem Start des Kernels ausgeführt und ist dafür verantwortlich, den Linux-Host in den Zustand zu versetzen, in dem er verwendet werden kann. Es ist verantwortlich für das Starten und Verwalten der Dienste, das Mounten von Dateisystemen, das Verwalten von Hardware, das Generieren der Anmeldeaufforderung und vieles mehr.

Ein wesentlicher Vorteil gegenüber SysV besteht darin, dass systemd so viele Dienste wie möglich parallel startet und so die Geschwindigkeit beschleunigt Startvorgang, und das bringt den Anmeldebildschirm schneller.

Einheit

Die vom System verwalteten Elemente werden als Einheiten bezeichnet. Die Gerätedateien befinden sich in /lib/systemd/System funktionieren.

Serviceeinheiten

Für das Service-Management sind die Zieleinheiten Service-Einheiten, die Einheitendateien mit dem Suffix von haben .Bedienung.

Verwalten von systemd-Diensten

Der Befehl zum Verwalten von systemd-Einheiten lautet systemctl.

Starten und Stoppen von Diensten

Verwenden Sie den Befehl systemctl start, um einen systemd-Dienst zu starten:

$ sudo systemctl start name.service

Sie können das Suffix .service verlassen. So starten Sie beispielsweise den Apache-Server unter Ubuntu:

$ sudo systemctl start apache2

So stoppen Sie einen laufenden Dienst:

$ sudo systemctl stop name.service

So stoppen Sie den Apache-Server unter Ubuntu:

$ sudo systemctl stop apache2

Dienste neu starten und neu laden

Verwenden Sie den Befehl restart, um einen laufenden Dienst neu zu starten:

$ sudo systemctl restart name.service

Und wo die einzige Konfigurationsdatei zum erneuten Laden erforderlich ist

$ sudo systemctl reload name.service

Dienste aktivieren und deaktivieren

Wenn ein Dienst beim Systemstart automatisch gestartet werden soll, verwenden Sie den Befehl enable:

$ sudo systemctl enable name.service

So deaktivieren Sie den Start eines Dienstes beim Systemstart:

$ sudo systemctl disable name.service

Durch Deaktivieren wird ein laufender Dienst nicht gestoppt.

Servicestatus anzeigen

So zeigen Sie Informationen zu einem Dienst an:

$ sudo systemctl status name.service

Dies zeigt Ihnen den Status des Dienstes und die ersten Zeilen der Protokolldatei. Während der Dienst ausgeführt wird, ist die Ausgabe von

sudo systemctl status apache2

is

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 Tue 2020-05-19 22:11:36 UTC; 4 days ago
  Process: 116002 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Main PID: 104165 (apache2)
    Tasks: 55 (limit: 1024)
   CGroup: /system.slice/apache2.service
           ├─104165 /usr/sbin/apache2 -k start
           ├─116006 /usr/sbin/apache2 -k start
           └─116007 /usr/sbin/apache2 -k start

May 19 22:11:36 ubuntu18 systemd[1]: Starting The Apache HTTP Server...
May 19 22:11:36 ubuntu18 systemd[1]: Started The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1]: Reloading The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1]: Reloaded The Apache HTTP Server.
May 22 06:25:01 ubuntu18 systemd[1]: Reloading The Apache HTTP Server.

So überprüfen Sie, ob ein Dienst aktiv ist:

$ sudo systemctl is-active name.service

Während der Dienst apache2 ausgeführt wird, lautet die Ausgabe des Befehls systemctl is-active:

$ sudo systemctl is-active apache2
active

So überprüfen Sie, ob ein Dienst aktiviert ist:

$ sudo systemctl is-enabled name.service.

Viewing System State

Alle Befehle, die Sie bisher gesehen haben, werden zum Verwalten eines einzelnen Dienstes verwendet. Wenn Sie einen Überblick über den Systemstatus erhalten möchten, verwenden Sie die folgenden Befehle:

Alle Einheitentypen anzeigen

$ sudo systemctl -t help
Available unit types:
service
socket
target
device
mount
automount
swap
timer
path
slice
scope

Verwenden Sie List-Unit-Dateien, um alle installierten Einheiten aufzulisten

$ sudo systemctl list-unit-files
UNIT FILE                              STATE          
proc-sys-fs-binfmt_misc.automount      static         
-.mount                                generated      
boot-efi.mount                         generated      
dev-hugepages.mount                    static         
dev-mqueue.mount                       static         
mnt.mount                              generated      
proc-sys-fs-binfmt_misc.mount          static         
sys-fs-fuse-connections.mount          static         
sys-kernel-config.mount                static         
sys-kernel-debug.mount                 static         
acpid.path                             enabled        
apport-autoreport.path                 enabled        
systemd-ask-password-console.path      static         
systemd-ask-password-plymouth.path     static         
systemd-ask-password-wall.path         static         
session-161.scope                      transient      
accounts-daemon.service                enabled        

Die Ausgabe hat nur zwei Spalten Unit File und State. Der Status wird normalerweise aktiviert, deaktiviert, statisch oder maskiert.

  • Statisch: Dies bedeutet, dass die Einheit nicht aktiviert werden kann, eine einmalige Aktion ausführt oder eine Abhängigkeit von einer anderen Einheit ist und nicht alleine ausgeführt werden kann.
  • Maskiert: Eine als maskiert aufgeführte Einheit bedeutet, dass sie vollständig nicht gestartet werden kann, da sie mit / dev / null verknüpft ist. Dies wird als Maskieren der Einheit bezeichnet. Dies verhindert, dass der Dienst manuell oder automatisch gestartet wird.

Listen Sie alle installierten Dienste auf

Der Befehl systemctl list-unit-files mit dem Dienstfilter -t oder –type zeigt nur den Status der installierten Dienste an.

$ sudo systemctl list-unit-files -t service
UNIT FILE                              STATE    
accounts-daemon.service                enabled  
acpid.service                          disabled 
apache-htcacheclean.service            disabled 
apache-htcacheclean@.service           disabled 
apache2.service                        enabled  
apache2@.service                       disabled 
apparmor.service                       enabled  
apport-autoreport.service              static   
apport-forward@.service                static   
apport.service                         generated
apt-daily-upgrade.service              static   
apt-daily.service                      static   
atd.service                            enabled  
autovt@.service                        enabled  
blk-availability.service               enabled  
bootlogd.service                       masked   
bootlogs.service                       masked   

Verwenden Sie Listeneinheiten mit dem Servicefilter -t, um alle aktiven Serviceeinheiten anzuzeigen

$ sudo systemctl list-units -t service
UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION                             
  accounts-daemon.service              loaded active running Accounts Service                        
  apache2.service                      loaded active running The Apache HTTP Server                  
  apparmor.service                     loaded active exited  AppArmor initialization                 
  apport.service                       loaded active exited  LSB: automatic crash report generation  
  atd.service                          loaded active running Deferred execution scheduler            
  blk-availability.service             loaded active exited  Availability of block devices           
  cloud-config.service                 loaded active exited  Apply the settings specified in cloud-con
  cloud-final.service                  loaded active exited  Execute cloud user/final scripts        
  cloud-init-local.service             loaded active exited  Initial cloud-init job (pre-networking) 
  cloud-init.service                   loaded active exited  Initial cloud-init job (metadata service 
  console-setup.service                loaded active exited  Set console font and keymap             
  cron.service                         loaded active running Regular background program processing dae

Die Ausgabe enthält die folgenden Spalten:

  • EINHEIT: Der Name der systemd-Serviceeinheit
  • BELASTUNG: Zeigt an, ob die Einheitendefinition richtig gelesen und geladen wurde
  • ACTIVE: Beschreibt, ob das Gerät aktiv ist.
  • SUB: Aktivierungsstatus des Geräts auf niedriger Ebene mit detaillierteren Informationen zum Gerät. Dies hängt vom Gerätetyp ab.
  • BESCHREIBUNG: Die Beschreibung der Serviceeinheit.

Fazit

Ich hoffe, dies gibt Ihnen eine Vorstellung davon, wie Sie mit systemctl Dienste unter Linux verwalten können. Wenn Sie mehr erfahren möchten, können Sie dies überprüfen Linux Mastery Kurs.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu Linux
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder