Script Pyton en tant que service
Posted: Sun Apr 19, 2020 11:32 am
Bonjour à tous.
Je viens de suivre un tuto Domoticz sur la detection des beacons et cela fonctionne très bien.
Cependant je bute sur la mise en place du service : et la c'est que du raspbain si je ne me trompe
J'ai donc créé le fichier check_beacon_presence.service de cette façon
J'ai ensuite activé le service
Puis démarré ce même service
Et verifier que tout fonctionne
ensuite je relance le rpi et la meme commande me renvoie ceci
Aussi j'ai pensé à ce que ce soit root qui lance le service
Donc j'ai vérifié en ligne de commande de cette façon:
Les beacons sont mis à jour et le fichier de log est bien mis à jour.
Donc si je le lance à la main cela focntionne mais au redemarrage du RPI cela ne passe pas.
Je suis sous buster et avec un rpi4
Je ne comprends pas pourquoi j’ai cette erreur…
Peut-être ai-je mal compris comment faire…
J’espère que quelqu’un saura m’aguiller.
Merci d’avance pour votre aide !
Bonne journée et bon confinement
Je viens de suivre un tuto Domoticz sur la detection des beacons et cela fonctionne très bien.
Cependant je bute sur la mise en place du service : et la c'est que du raspbain si je ne me trompe
J'ai donc créé le fichier check_beacon_presence.service de cette façon
Code: Select all
Description=check_beacon_presence Service
After=multi-user.target
[Service]
User=root
Type=idle
ExecStart=python /usr/local/bin/check_beacon_presence.py
[Install]
WantedBy=multi-user.target
Code: Select all
sudo systemctl enable check_beacon_presence.service
Code: Select all
sudo systemctl start check_beacon_presence.service
Code: Select all
pi@raspberrypi4:~ $ sudo systemctl status check_beacon_presence.service -l
● check_beacon_presence.service
Loaded: loaded (/etc/systemd/system/check_beacon_presence.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-04-18 19:30:22 CEST; 1min 7s ago
Main PID: 7213 (python)
Tasks: 2 (limit: 3911)
Memory: 12.0M
CGroup: /system.slice/check_beacon_presence.service
└─7213 /usr/bin/python /usr/local/bin/check_beacon_presence.py
avril 18 19:30:22 raspberrypi4 systemd[1]: Started check_beacon_presence.service.
avril 18 19:30:22 raspberrypi4 sudo[7219]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/hciconfig hci1 down
avril 18 19:30:22 raspberrypi4 sudo[7219]: pam_unix(sudo:session): session opened for user root by (uid=0)
avril 18 19:30:22 raspberrypi4 sudo[7219]: pam_unix(sudo:session): session closed for user root
avril 18 19:30:22 raspberrypi4 sudo[7229]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/hciconfig hci1 up
avril 18 19:30:22 raspberrypi4 sudo[7229]: pam_unix(sudo:session): session opened for user root by (uid=0)
avril 18 19:30:22 raspberrypi4 sudo[7229]: pam_unix(sudo:session): session closed for user root
avril 18 19:30:22 raspberrypi4 sudo[7239]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/hciconfig
avril 18 19:30:22 raspberrypi4 sudo[7239]: pam_unix(sudo:session): session opened for user root by (uid=0)
avril 18 19:30:22 raspberrypi4 sudo[7239]: pam_unix(sudo:session): session closed for user root
Code: Select all
pi@raspberrypi4:~ $ sudo systemctl status check_beacon_presence.service -l
● check_beacon_presence.service
Loaded: loaded (/etc/systemd/system/check_beacon_presence.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2020-04-18 19:25:09 CEST; 1s ago
Process: 4777 ExecStart=/usr/bin/python /usr/local/bin/check_beacon_presence.py (code=exited, status=1/FAILURE)
Main PID: 4777 (code=exited, status=1/FAILURE)
avril 18 19:25:09 raspberrypi4 sudo[4803]: pam_unix(sudo:session): session opened for user root by (uid=0)
avril 18 19:25:09 raspberrypi4 sudo[4803]: pam_unix(sudo:session): session closed for user root
avril 18 19:25:09 raspberrypi4 python[4777]: Traceback (most recent call last):
avril 18 19:25:09 raspberrypi4 python[4777]: File "/usr/local/bin/check_beacon_presence.py", line 182, in <module>
avril 18 19:25:09 raspberrypi4 python[4777]: hci_toggle_le_scan(sock, 0x01)
avril 18 19:25:09 raspberrypi4 python[4777]: File "/usr/local/bin/check_beacon_presence.py", line 102, in hci_toggle_le_scan
avril 18 19:25:09 raspberrypi4 python[4777]: bluez.hci_send_cmd(sock, OGF_LE_CTL, OCF_LE_SET_SCAN_ENABLE, cmd_pkt)
avril 18 19:25:09 raspberrypi4 python[4777]: _bluetooth.error: (1, 'Operation not permitted')
avril 18 19:25:09 raspberrypi4 systemd[1]: check_beacon_presence.service: Main process exited, code=exited, status=1/FAILURE
avril 18 19:25:09 raspberrypi4 systemd[1]: check_beacon_presence.service: Failed with result 'exit-code'.
Donc j'ai vérifié en ligne de commande de cette façon:
Code: Select all
pi@raspberrypi4:~ $ sudo su
root@raspberrypi4:/home/pi# python /usr/local/bin/check_beacon_presence.py
Donc si je le lance à la main cela focntionne mais au redemarrage du RPI cela ne passe pas.
Je suis sous buster et avec un rpi4
Je ne comprends pas pourquoi j’ai cette erreur…
Peut-être ai-je mal compris comment faire…
J’espère que quelqu’un saura m’aguiller.
Merci d’avance pour votre aide !
Bonne journée et bon confinement