====== Script pour automatiser le lancement de lorapipe ====== Tout d'abord, disons que les scripts sont utilisés pour automatiser ou effectuer des tâches sans avoir à les répéter encore et encore, car dans le fichier de script lui-même, nous introduirons toutes les commandes nécessaires pour effectuer la tâche. Pour créer le script, l'éditeur de texte Linux suffit. • Créez un fichier texte dans le chemin où nous voulons avoir le script. • Enregistrez le fichier avec le nom que nous aimons le plus mais avec l'extension ".sh" • Afin d'être reconnu comme un script, nous devons écrire «#! / Bin / bash» comme première ligne (sans les guillemets). Il ne nous reste plus qu'à écrire les commandes comme s'il s'agissait de la console, l'une après l'autre. #!/bin/bash cd "/home/gabriel/Téléchargements/lorapipe-master/target/release/" sudo kissattach /dev/ptmx lora 192.168.3.20 sudo socat /dev/pts/3,rawer EXEC:'./lorapipe --initfile=init-fast.txt --debug --txslot 2000 --pack --maxpacketsize 200 --txwait 150 /dev/ttyUSB0 kiss,pty,rawer' Pour tester son fonctionnement, nous l'exécutons dans le dossier où il a été créé en mettant: ./scriptinitlora.sh Après son exécution au démarrage du PC, nous devons procéder comme suit: Pour cela, nous avons besoin de: • Que le script soit exécutable. Si ce n'est pas le cas, pour lui donner des autorisations, nous exécutons: sudo chmod 777 scriptinitlora.sh • Ajoutez le script à rc.local: sudo nano /etc/rc.local avant de quitter 0. Il devrait ressembler à ceci. #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. sh /home/gabriel/scriptinitlora.sh exit 0 Pour tester que le script a démarré, nous exécutons: root@mneme:/etc/init.d# systemctl status rc-local ● rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabled) Drop-In: /lib/systemd/system/rc-local.service.d └─debian.conf Active: activating (start) since Mon 2020-06-22 15:53:49 CEST; 1h 55min ago Docs: man:systemd-rc-local-generator(8) Cntrl PID: 14295 (rc.local) Tasks: 9 (limit: 4538) Memory: 4.2M CGroup: /system.slice/rc-local.service ├─14295 /bin/sh -e /etc/rc.local start ├─14297 sh /home/gabriel/scriptinitlora.sh ├─14339 kissattach /dev/ptmx lora 192.168.3.20 ├─14341 sudo socat /dev/pts/3,rawer EXEC:./lorapipe --initfile=init-fast.txt --debug --txslot 2000 --pack --maxpacketsize 200 --txwait 150 /de ├─14358 socat /dev/pts/3,rawer EXEC:./lorapipe --initfile=init-fast.txt --debug --txslot 2000 --pack --maxpacketsize 200 --txwait 150 /dev/tty └─14364 ./lorapipe --initfile=init-fast.txt --debug --txslot 2000 --pack --maxpacketsize 200 --txwait 150 /dev/ttyUSB0 kiss juin 22 17:46:14 mneme rc.local[14295]: 15:46:14 [TRACE] (3) lorapipe::ser: [src/ser.rs:72] "/dev/ttyUSB0" SEROUT: radio rx 0 juin 22 17:46:14 mneme rc.local[14295]: 15:46:14 [TRACE] (2) lorapipe::ser: [src/ser.rs:65] "/dev/ttyUSB0" SERIN: ok juin 22 17:47:14 mneme rc.local[14295]: 15:47:14 [TRACE] (2) lorapipe::ser: [src/ser.rs:65] "/dev/ttyUSB0" SERIN: radio_err juin 22 17:47:14 mneme rc.local[14295]: 15:47:14 [DEBUG] (3) lorapipe::lorastik: txdelayrequired: self.txdelay = None juin 22 17:47:14 mneme rc.local[14295]: 15:47:14 [TRACE] (3) lorapipe::ser: [src/ser.rs:72] "/dev/ttyUSB0" SEROUT: radio rx 0 juin 22 17:47:14 mneme rc.local[14295]: 15:47:14 [TRACE] (2) lorapipe::ser: [src/ser.rs:65] "/dev/ttyUSB0" SERIN: ok juin 22 17:48:14 mneme rc.local[14295]: 15:48:14 [TRACE] (2) lorapipe::ser: [src/ser.rs:65] "/dev/ttyUSB0" SERIN: radio_err juin 22 17:48:14 mneme rc.local[14295]: 15:48:14 [DEBUG] (3) lorapipe::lorastik: txdelayrequired: self.txdelay = None juin 22 17:48:14 mneme rc.local[14295]: 15:48:14 [TRACE] (3) lorapipe::ser: [src/ser.rs:72] "/dev/ttyUSB0" SEROUT: radio rx 0 juin 22 17:48:14 mneme rc.local[14295]: 15:48:14 [TRACE] (2) lorapipe::ser: [src/ser.rs:65] "/dev/ttyUSB0" SERIN: ok Comme vous pouvez le voir, cela fonctionne sans problème