Systemdienst einrichten: Unterschied zwischen den Versionen

Aus behwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
(Linux Debian/Ubuntu) - Terminal/Server
''(Linux Debian/Ubuntu) - Terminal/Server''


Um einen Systemdienst auf Linux einzurichten, um ihn als "service XYZ start" starten zu können, sind folgende Schritte nötig:
Um einen Systemdienst auf Linux einzurichten, um ihn als "service XYZ start" starten zu können, sind folgende Schritte nötig:


Es wird davon ausgegangen, dass diese Schritte als sudo-Mitglied gemacht werden.
Es wird davon ausgegangen, dass diese Schritte als sudo-Mitglied gemacht werden.
sudo nano /etc/systemd/system/dienstname.service


<code>sudo nano /etc/systemd/system/dienstname.service</code>
<code>sudo nano /etc/systemd/system/dienstname.service</code>
Zeile 10: Zeile 9:
Im einfachsten Fall reicht folgendes aus:
Im einfachsten Fall reicht folgendes aus:


<code>[Unit]</code>
<pre>
[Unit]
Description=Eigener Dienst


<code>Description=Eigener Dienst</code>
[Service]
WorkingDirectory=/srv
ExecStart=/srv/script.sh arg1 arg2
User=scripter
Restart=always


<nowiki>#</nowiki>
[Install]
 
WantedBy=multi-user.target
<code>[Service]</code>
</pre>
 
<code>WorkingDirectory=/srv</code>
 
<code>ExecStart=/srv/script.sh arg1 arg2</code>
 
<code>User=scripter</code>
 
<code>Restart=always</code>
 
<nowiki>#</nowiki>
 
<code>[Install]</code>
 
<code>WantedBy=multi-user.target</code>


In einigen Fällen, vor allem wenn while-Schleifen zum Einsatz kommen, kann dies auch komplexer werden:
In einigen Fällen, vor allem wenn while-Schleifen zum Einsatz kommen, kann dies auch komplexer werden:


<code>[Unit]</code>
<pre>
 
[Unit]
<code>Description=Eigener dienst</code>
Description=Eigener dienst
 
After=network.target
<code>After=network.target</code>
Restart=always
 
RestartSec=5
<code>Restart=always</code>
 
<code>RestartSec=5</code>
 
<code>[Service]</code>
 
<code>ExecStart=/srv/script.sh arg1 arg2</code>
 
<code>WorkingDirectory=/srv</code>


<code>User=scripter</code>
[Service]
ExecStart=/srv/script.sh arg1 arg2
WorkingDirectory=/srv
User=scripter
Group=scripter
Restart=always
StandardOutput=journal
StandardError=journal


<code>Group=scripter</code>
[Install]
 
WantedBy=multi-user.target
<code>Restart=always</code>
</pre>
 
<code>StandardOutput=journal</code>
 
<code>StandardError=journal</code>
 
<code>[Install]</code>
 
<code>WantedBy=multi-user.target</code>


Zum Schluss muss der Dienst noch aktiviert werden:
Zum Schluss muss der Dienst noch aktiviert werden:
Zeile 71: Zeile 52:


<code>sudo service dienst start</code>
<code>sudo service dienst start</code>
<code>sudo service dienst status</code>
<code>sudo service dienst status</code>
<code>sudo service dienst stop</code>
<code>sudo service dienst stop</code>

Aktuelle Version vom 29. April 2024, 13:19 Uhr

(Linux Debian/Ubuntu) - Terminal/Server

Um einen Systemdienst auf Linux einzurichten, um ihn als "service XYZ start" starten zu können, sind folgende Schritte nötig:

Es wird davon ausgegangen, dass diese Schritte als sudo-Mitglied gemacht werden.

sudo nano /etc/systemd/system/dienstname.service

Im einfachsten Fall reicht folgendes aus:

[Unit]
Description=Eigener Dienst

[Service]
WorkingDirectory=/srv
ExecStart=/srv/script.sh arg1 arg2
User=scripter
Restart=always

[Install]
WantedBy=multi-user.target

In einigen Fällen, vor allem wenn while-Schleifen zum Einsatz kommen, kann dies auch komplexer werden:

[Unit]
Description=Eigener dienst
After=network.target
Restart=always
RestartSec=5

[Service]
ExecStart=/srv/script.sh arg1 arg2
WorkingDirectory=/srv
User=scripter
Group=scripter
Restart=always
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Zum Schluss muss der Dienst noch aktiviert werden:

sudo systemctl enable dyndnsupdater.service

Und anschließend kann der dienst gestartet und auf den Status geschaut werden:

sudo service dienst start sudo service dienst status sudo service dienst stop