Wpis z mikrobloga

Pytanie może i trywailne ale jak zrobić automatyczny start przez systemctl w najnowszym Pi OS?

Chodzi dokładnie o mqttwarn

Zainstalowałem to przez menedżera pakietów Python poleceniem pip install...

Gdy uruchamiam ręcznie jak widać działa ale mam problem z konfiguracją systemctl mimo, że trzymałem się instrukcji:

https://github.com/jpmens/mqttwarn/blob/main/etc/mqttwarn.service

Log mqttwarn mówi, że: /bin/sh: 1: exec: /usr/local/bin/mqttwarn: not found

Gdy sprawdzam ststus usługi: wywala błąd w ExecStart

Trzeba coś zmienić w tej ścieżce? Aktualnie zostawiłem tak jak było:

ExecStart=/bin/sh -c 'exec /usr/local/bin/mqttwarn ${MQTTWARN_OPTIONS} >>${STDOUT} 2>>${STDERR}'

#raspberrypi #linux #debian #python
n.....y - Pytanie może i trywailne ale jak zrobić automatyczny start przez systemctl ...

źródło: comment_1652819682EeRmU7U4njcqg82C5SiT4V.jpg

Pobierz
  • 8
  • Odpowiedz
@fervi: Sam mqttwart jest na 100% ok. Mogę uruchomić ręcznie poleceniem mqttwarn i bez problemu startuje. Mam tylko problem z uruchomieniem w tle jako usługi. Wiem, że ta aplikacja do działania wykorzystuje w jakimś stopniu Pythona i może tu gdzieś jest problem. W logu jest tak jak było: /bin/sh: 1: exec: /usr/local/bin/mqttwarn: not found
  • Odpowiedz
W logu jest tak jak było: /bin/sh: 1: exec: /usr/local/bin/mqttwarn: not found


@nieujawniony: Może zrób symlinka do swojego katalogu i może to ruszy

sudo ln -s /home/pi/.local/bin/mqttwarn /usr/local/bin/mqttwarn

I daj znać
  • Odpowiedz
@fervi: Dzięki próbę pomocy ale ten symlink za dużo nie zmienił.

Znalazłem dość dokładny opis gdzie ktoś wykorzystywał mqttwarn w jakimś projecie i tam ścieżką "ExecStart=" jest bardziej złożona od tego co ustawiłem:

https://www.mickmake.com/post/the-mqtt-letterbox-part-2-sending-alerts-from-mqtt-project/

..Nie wiem co oznaczają te klamrowe nawiasy w ściżce: ${MQTTWARN_OPTIONS} >>${STDOUT} 2>>${STDERR} ale ja aktualnie ich nie mam i pewnie to jest przyczyna, że wywala błąd.
  • Odpowiedz
@nieujawniony: to zmienne. Pierwsza określa opcję, druga wynik programu, a trzecia wynik błędów.

Natomiast jeśli to problem z użyciem systemctl, możesz po prostu dodać skrypt do crontab i będzie uruchamiany zawsze przy starcie.
  • Odpowiedz