Servus zusammen,
Ich habe gerade für unsere Feuerwehr ein Script geschrieben dass Pagermeldungen ausliest und per Telegramm an die Mitglieder aussendet.
Das ganze funktioniert auch ganz hervorragend, solange ich das Script per Hand starte.
Wenn ich einen SystemD Service nutze funktionieren die subprozesse nicht mehr richtig.
Wo liegt der unterschied ob ich ein Script per Hand oder per SystemD starte? Mir leuchtet das ganze nicht ganz ein.
Code
[Unit]
Description=Alarmierungssystem
After=network-online.target
[Service]
ExecStart=/usr/bin/python3 /decode/decode.py
User=root
[Install]
WantedBy=multi-user.target
Code
import requests
import time
import sys
import subprocess
import os
import time
empfangsric = 0000000
bottoken = "XXXXXXXXXXXXX"
chatroomid = '-XXXXXXXXXXXX'
# Send a text message to a chat room (chat room ID retrieved from getUpdates) 168098000
url = "https://api.telegram.org/bot" + bottoken + "/sendMessage"
def curtime():
return time.strftime("%H:%M:%S %Y-%m-%d")
with open('error.txt','a') as file:
file.write(('#' * 20) + '\n' + curtime() + '\n')
multimon_ng = subprocess.Popen("rtl_fm -f 168098000 -s 22050 -g 40 -p 65 | multimon-ng -a POCSAG1200 -a POCSAG512 -a POCSAG2400 -f alpha -t raw -",
#stdin=rtl_fm.stdout,
stdout=subprocess.PIPE,
stderr=open('error.txt','a'),
shell=True)
try:
while True:
...
Display More
rtl_fm wird entweder gar nicht gestartet oder stürzt sofort ab, hat jemand eine Idee wie ich das lösen könnte?
Gerne auch mit einer gänzlich anderen Autostart Methode.
Ich hoffe jemand kann mir helfen, danke im vorraus!