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

So erstellen Sie einen Systemd-Dienst unter Linux

Manchmal erstellen Sie ein Skript und möchten dann, dass die Skripte von systemd gesteuert werden, oder in einigen Fällen möchten Sie, dass die Skripte von selbst neu gestartet werden, wenn es aus irgendeinem Grund beendet wird.

Systemd in Linux hilft, Dienste zu konfigurieren, die verwaltet werden können.

In diesem Artikel Wir zeigen Ihnen, wie Sie einen systemd-Dienst erstellen.

Systemdienst erstellen

Allgemein

Befolgen Sie einfach die folgenden Schritte:

  • Sie finden den laufenden Linux-Dienst unter dem Pfad /etc/systemd/system
cd /etc/systemd/system
  • Erstellen Sie eine Datei namens [servicename.service] und fügen Sie Folgendes hinzu
[Unit]
Description=<description_about_your_service>

[Service]
User=<user_such_as_root>
WorkingDirectory=<directory_of__your_script such as /home/unixcop>
ExecStart=<script_which_needs_to_be_executed>
Restart=always

[Install]
WantedBy=multi-user.target

HINWEIS :Ersetzen Sie das Fett Werte oben mit Ihren Werten Ihres neuen Dienstes, den Sie erstellen möchten.

Eine Serviceeinheit ist eine Datei mit dem .service Suffix enthält Informationen über einen Prozess, der von systemd verwaltet wird . Es besteht aus drei Hauptabschnitten:

  • [Einheit] :Dieser Abschnitt enthält Informationen, die sich nicht speziell auf den Gerätetyp beziehen, wie z. B. die Leistungsbeschreibung
  • [Dienst] :enthält Informationen über den spezifischen Gerätetyp, in diesem Fall einen Dienst
  • [Installieren] :Dieser Abschnitt enthält Informationen zur Installation des Geräts

Für Python-spezifische Projekte, die eine virtuelle Umgebung enthalten

  • Folgen Sie den gleichen Schritten oben, aber fügen Sie Folgendes hinzu
[Unit]
Description=<description_about_your_project>

[Service]
User=<user_such_as_root>
WorkingDirectory=<path/to/your/project/directory/containing/the/python/script>
ExecStart=Path of virtualenv and your script file name

#Example for ExecStart=/home/user/.virtualenv/bin/python main.py
#replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script name

Restart=always

[Install]
WantedBy=multi-user.target

ODER

[Unit]
Description=<description_about_your_project>

[Service]
User=<user_such_as_root>
WorkingDirectory=<path to your project directory>
ExecStart=/bin/bash -c 'cd /home/unixcop/project/ && source venv/bin/activate && python test.py'

#replace /home/unixcop/project/ with your Path, venv/bin/activate with your source and test.py with your script name

[Install]
WantedBy=multi-user.target
  • Nachdem Sie die Dienstdateien neu geladen haben, um den neuen Dienst aufzunehmen.
sudo systemctl daemon-reload
  • Starten Sie Ihren neuen Dienst
    sudo systemctl start [your_new_service].service
  • Überprüfen Sie den Status Ihres neuen Dienstes, z. B. (mein neuer Dienst namens unixcop.service)
    sudo systemctl status unixcop.service
  • Aktivieren Sie Ihren Dienst bei jedem Neustart
    sudo systemctl enable unixcop.service
  • Um Ihren Dienst bei jedem Neustart zu deaktivieren
    sudo systemctl disable unixcop.service

Schlussfolgerung

Das ist es

Wir haben gezeigt, wie man einen neuen systemd-Dienst unter Linux erstellt

Danke !!


Linux
  1. So erstellen Sie ein Linux-RPM-Paket

  2. So erstellen Sie einen Swap unter Linux

  3. So erstellen Sie eine Auslagerungsdatei unter Linux

  4. Linux – Wie bekommt man mit Systemd weniger Ttys?

  5. So listen Sie Systemd-Dienste unter Linux auf

So erstellen Sie Verknüpfungen auf dem Linux-Desktop

So erstellen Sie eine Montage aus Bildern unter Linux

So erstellen Sie einen SSH-Alias ​​unter Linux

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

So erstellen Sie einen Alias ​​unter Linux

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus