Ich versuche gerade einigen SysV Scripte nach systemd umzubauen um sie unter Leap 42.1 weiterzuverwenden. Eines der Binaries weigert sich aber bisher standhaft zu kooperieren
Es ist ein uralter Daemon, der Daten von der seriellen Schnittstelle liest und an eine Textdatei weiterleitet. Wird das via Kommadozeile gemacht funktioniert alles bestens:
Das geht natürlich nur solange bis die Shell geschlossen wird und die Shell selbst bleibt nur nutzbar wenn man das Binary im Hintergrund starten mit &.
Nun habe ich es für systemd so versucht:
[Unit]
Description=UNIX Serial Daemon test
After=network.target
[Service]
ExecStart=/opt/test/bin/pcwsr /dev/ttyUSB0 >> /var/test/datei.txt
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
Alles anzeigen
Nur so funktioniert das überhaupt nicht - da läuft nichts nach dem Start:
# systemctl status pcwsr.service
pcwsr.service - UNIX Weather Daemon pcwsr
Loaded: loaded (/etc/systemd/system/pcwsr.service; disabled)
Active: failed (Result: start-limit) since Fri 2015-11-20 20:06:08 CET; 1h 49min ago
Process: 11261 ExecStart=/opt/test/bin/pcwsr /dev/ttyUSB0 >> /var/test/datei.txt (code=exited, status=255)
Main PID: 11261 (code=exited, status=255)
Nov 20 20:06:08 garfield pcwsr[11261]: pcwsr 0.1.4 - experimental test version
Nov 20 20:06:08 garfield pcwsr[11261]: Usage: pcwsr -r -d -p <serial device>
Nov 20 20:06:08 garfield pcwsr[11261]: where <options> include:
Nov 20 20:06:08 garfield pcwsr[11261]: -r: dump raw data frames
Nov 20 20:06:08 garfield pcwsr[11261]: -d: addtl. debug output
Nov 20 20:06:08 garfield pcwsr[11261]: -p: pipeline-compatible output to stdout, suitable for piping to 'pcwsr_to_postgresql'
Alles anzeigen
Gerade viel sagt das nicht aus. Ich arbeite mich erst etwas in systemd ein - aber vielleicht kennt sich hier jemand viel besser damit aus und kann mit ein paar Tipps geben.
Leider funktioniert auch mein altes SysV Script von openSuSE 13.1 unter Leap 42.1 nicht mehr, sonst hätte ich dieses verwenden können.