L'utilisateur pi est utilisé dans les exemples. C'est le moyen privilégié pour démarrer le serveur Rocrail automatiquement après le redémarrage au lieu de le faire fonctionner comme démon dans le contexte du super-utilisateur. |
Si le serveur Rocrail fonctionne sur un ordinateur dédié comme le Raspberry Pi, cela peut être utile si le serveur démarre automatiquement après chaque redémarrage dans le contexte utilisateur.
Il y a plusieurs moyens d'établir cela, mais la solution crontab est très facile à implémenter.
Le fichier fourni ~/Rocrail/startrocrail.sh
peut également être utilisé au lieu d'utiliser le votre.
Cette version fourni supporte également les fonctions du Moniteur Serveur.
Créer un script de démarrage, startrocrail.sh dans le répertoire personnel de l'utilisateur pi par l'ouverture d'un éditeur comme vi startrocrail.sh:
#!/bin/sh cd /home/pi/Rocrail /home/pi/Rocrail/bin/rocrail -l /home/pi/Rocrail/bin
Rendre le script exécutable:
chmod +x startrocrail.sh
Utiliser cette option en premier si tout fonctionne parfaitement. L'utilisateur pi est supposé être un soduer. |
Pour automatiquement arrêter l'ordinateur après que le serveur Rocrail s'est arrêté, ajouter la ligne suivante dans le script startrocrail.sh:
if [ $? -eq 70 ] then echo raspberry | sudo -S halt -p fi
La déclaration d'écho est suivi par le mot de passe de l'utilisateur. Dans ce cas c'est "raspberry", qui est le mot de passe par défaut de l'utilisateur pi sous Raspbian.
Rocrail retournera le code 70 au cas d'une commande d'arrêt du client. Un kill retournera zéro. |
Ajouter la ligne suivante à la fin de liste crontab de l'utilisateur pi avec la commande crontab -e:
@reboot /home/pi/startrocrail.sh
Ou directement par la ligne de commande:
(crontab -l ; echo "@reboot /home/pi/startrocrail.sh")| crontab -
Vérifier le crontab:
crontab -l
Sortie:
# For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command @reboot /home/pi/startrocrail.sh
Un arrêt normal de l'ordinateur émettra à tous les processus en cours une commande kill qui arrêtera également le serveur Rocrail normalement. |
killall rocrail
#!/bin/sh WS=$1 PASSWORD=$2 cd if [ ! $1 ]; then cd ~/Rocrail/default else cd ~/Rocrail/$WS fi ~/Rocrail/bin/rocrail -l ~/Rocrail/bin if [ $? -eq 70 ] then echo $PASSWORD | sudo -S halt -p fi