Bash Service Unit Systemd fehlerhaft

larshamm

Lt. Junior Grade
Registriert
März 2011
Beiträge
363
Hallo, ich versuche einen PDNS Server + PDNS Admin zum laufen zu bekommen. Leider hatte ich bisher immer Fallstricke bei allen Anleitungen die gefunden habe, hier nun der Versuch mit einer weiteren Anleitung.

Meine Datei pdnsadmin.service

Code:
[Unit] 
Description=PowerDNS-Admin 
Requires=pdnsadmin.socket 
After=network.target 
 
[Service] 
PIDFile=/run/pdnsadmin/pid 
User=pdns 
Group=pdns 
WorkingDirectory=/var/www/html/pdns 
ExecStart=/var/www/html/pdns/flask/bin/gunicorn  --pid /run/pdnsadmin/pid  --bind unix:/run/pdnsadmin/socket 'powerdnsadmin:create_app()'  ExecReload=/bin/kill  -s HUP $MAINPID  ExecStop=/bin/kill -s TERM $MAINPID  PrivateTmp=true 
 
[Install] 
WantedBy=multi-user.target


Fehler:

Code:
Jun 16 21:24:14 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:24:19 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:28:16 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:35:08 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:35:08 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:37:58 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:12: Missing '=', ignoring line.
Jun 16 21:37:58 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:13: Unknown key name '--bind unix:/run/pdnsadmin/socket 'powerdnsadmin:create_app()'  ExecReload' in section 'Service', ignoring.
Jun 16 21:37:58 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:14: Unknown key name '-s HUP $MAINPID  ExecStop' in section 'Service', ignoring.
Jun 16 21:43:07 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Jun 16 21:43:07 scp systemd[1]: /etc/systemd/system/pdnsadmin.service:1: Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>

Es ist der Anleitung hier entnommen: https://blog.eldernode.com/install-...bian-11/#How_to_Install_PowerDNS_on_Debian_11


Falls jemand die Codefehler beheben kann wäre ich dankbar, ich weiß nicht was mir das alles sagen soll. Zumal ich die Formatierung (Zeilenumbruch) in der Code Box im Tutorial etwas misslungen finde.



Ansonsten bin ich gerne dankbar für funktionierende Anleitungen für die Installation von PDNS + PDNS Admin auf aktueller Debian oder Ubuntu Version.
 
Ich glaube, dass die Zeilenumbrüche in deiner pdnsadmin.service ein Problem haben.
Code:
Invalid section header '[Unit]  Description=PowerDNS-Admin  Requires=pdnsadmin.socket  After=network.target    [Service]  PIDFile=/run/pdnsadmin/pid  User=pdns  Group=pdns  WorkingDirectory=/var/www>
Deutet für mich darauf hin, dass systemd den gesamten Inhalt als eine Zeile liest. Daher prüfe bitte, ob deine Datei korrekte Unix-Zeilenumbrüche (nur \n) enthält und deine Zeilen alle mit genau einer \n enden.
 
Mit dos2unix kann man die datei schnell auf Unix format ändern.
 
Das Tutorial hat ein paar schlecht formatierte Dateien.

So sollte es funktionieren:
Code:
[Unit]
Description=PowerDNS-Admin
Requires=pdnsadmin.socket
After=network.target
 
[Service]
PIDFile=/run/pdnsadmin/pid
User=pdns
Group=pdns
WorkingDirectory=/var/www/html/pdns
ExecStart=/var/www/html/pdns/flask/bin/gunicorn  --pid /run/pdnsadmin/pid  --bind unix:/run/pdnsadmin/socket 'powerdnsadmin:create_app()'  
ExecReload=/bin/kill  -s HUP $MAINPID  
ExecStop=/bin/kill -s TERM $MAINPID  
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

Wenn nicht, dann bitte noch "dos2unix /etc/systemd/system/pdnsadmin.service" ausführen.
Grund ist, dass Linux für Zeilenumbrüche nur ein Zeichen verwendet, bekannt als "\n", und
Windows zwei.
Wenn man nun Texte kopiert, kann es passieren dass die zwei Zeichen von Windows mitgenommen
werden und Linux-Systeme diese nicht mögen.

Frage nebenbei: warum pdns und nicht bind9 als DNS-Server?
 
Vielen Dank für die Hilfe, ich werde es später mal ausprobieren.
Vielen Dank auch für den Tipp mit dem Konverter
 
Zurück
Oben