Aktywne Wpisy

Karyp +109
Drodzy Mirki, Mirabelki i chciałbym was o cos poprosic. Otoz moi rodzice w w wieku emerytalnym wpuscili do domu akwizytorke (zona chlopa co kiedys remonty w domu robil) ktorej po 2 godzinnej prezentacji udalo sie im sprzedac za 2900 zl widoczny na zdjeciu zestaw do ekologicznego sprzatania. Nie jestem zwolennikiem mowienia innym na co maja wydawac pieniadze ale wydaje mi sie ze jest to scam na poziomie wciskania garnkow emerytom. Nie mam
źródło: scam
Pobierz
daunowix +17
#motocykle to jedno z najlepszych #hobby jakie są. Bo wszystko z nim związane jest prawdziwe, to jest 100% kontakt z rzeczywistością, w przeciwieństwie do wszystkiego co cyfrowe albo sprowadzające się do wydawania kasy na rzeczy, które materialne są tylko w teorii i ich wartość wyrażana w PLN jest główną cechą. Kolekcjonowanie zegarków, adidasów, kart z pokemonami, mtg to wszystko c--j przy motorkach. Bo jazda na motocyklu działa dobrze






Teraz dłuższa historia: jest program w pythonie, który po uruchomieniu ma sobie "pogadać" z zewnętrznym urządzeniem, program ten odwołuje się do osobnej biblioteki (Paramiko). Jest też skrypt w bashu, którego jedynym zadaniem jest uruchamianie tegoż programu. Skrypt wygląda następująco:
#! /bin/bash
#! /usr/bin/python3
python3 /home/pi/domoticz/scripts/python/esxicli.py > /dev/null
exit 0
I jak pisałem: gdy go odpalę z palca, komendą sh script.sh, wszystko pięknie działa. Gdy to samo robi domoticz jako "on action" (script://script.sh oczywiście script.sh jest we właściwej lokalizacji), w logu domoticza mam komunikat o wykonaniu skryptu. Tylko, że niestety właściwy program w pythonie się nie wykonuje.
Szukając przyczyn odkryłem, że gdy w skrypcie przed komendą uruchamiającą pythona wstawię sudo - program nawet uruchamiany z palca się wysypuje, z uwagą, że brak dostępu do biblioteki paramiko. Podejrzewam, że to samo się dzieje, gdy odpalane jest to z poziomu domoticza. Stąd pytanie: z jakim userem domoticz uruchamia takie polecenia i jak to naprawić, by było dobrze?
sudo ps axu | grep domoticzW Twoim skrypcie zbędna jest druga linia (#! /usr/bin/python3), a w pierwszej chyba nie powinno być spacji po ! (czyli:
#!/bin/bash).Często spotykałem się z tym, że skrypty bashowe nie umiały rozwinąć nazwy polecenia (
python3) na pełną ścieżkę, możeAktualnie bash wygląda tak:
pi@Domoticz:/home/Python $ cat
sudo -u domoticz_user bash
/usr/bin/python3 /home/Python/esxicli.py
W samym skrypcie możesz też poprawić tymczasowo swoje wywołanie, żeby z pliku odczytać, czy są jakieś błędy:
/usr/bin/python3 /home/Python/esxicli.py >
Użytkownik - nie bardzo wiem, jak to zinterpretować, czy to oznacza, że domoticz chodzi na roocie? Czy na pi?
pi@Domoticz:~/domoticz/scripts $ sudo ps
paramikopythona zainstalowana jest tylko dla userapi.root@Domoticz:/home/Python# ./script_1.sh
Traceback (most recent call last):
File "/home/Python/esxicli.py", line 1, in
import
sudo pip install paramikoJeśli nie potrzebujesz roota do tego skryptu to użyj runuser
runuser -l pi -c 'python3 /home/pi/domoticz/scripts/python/esxicli.py > /dev/null'