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