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 !!