Je suis nouveau dans cette plate-forme. J'ai une question à propos de rc.local . J'ai créé un script pour exécuter automatiquement roscore et roslaunch rosbridge_server rosbridge_websocket.launch . Ce nom de script est auto et le contenu du script est:
#!/bin/sh
cd $home
xterm -hold -e "roscore" &
xterm -hold -e "roslaunch rosbridge_server rosbridge_websocket.launch"
exit 0
Je dois exécuter ce script dans rc.local. Le fichier rc.local créé est:
#!/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.
Sudo auto.sh
sh '/home/moguztas/auto.sh'
exit 0
Où est-ce que je me trompe? Je suis la solution en 9 étapes à Comment puis-je exécuter "rc.local" au démarrage? mais cela n’a pas été exécuté.
Problème résolu complètement. La solution est donnée ci-dessous.
Tout d’abord, créez un script que vous souhaitez exécuter. Je veux exécuter rosbridge_websocket
automatiquement lorsque l'ordinateur démarre. Mon nom de script est auto et se trouve à home/username/auto.sh
. Le contenu du script est:
#!/bin/bash
cd $home
source /opt/ros/Indigo/setup.bash
roslaunch rosbridge_server rosbridge_websocket.launch
exit 0
Vous devez vérifier que votre fichier de script est exécutable. Pour exécuter le fichier de script, utilisez la commande suivante: $ Sudo chmod u+x /home/username/auto.sh
Pour ce faire, exécutez ce script dans rc.local
, situé à /etc/rc.local
. Il est créé à l’aide de gksudo gedit /etc/rc.local
. Dans le rc.local
se trouve:
#!/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.
/home/username/auto.sh
exit 0
Enfin, vous devez redémarrer votre système à l’aide de $ Sudo reboot
. Lorsque vous démarrez l'ordinateur, votre script est complètement opérationnel.
rc.local
est exécuté AVANT qu'une interface utilisateur graphique (c'est-à-dire X) soit disponible. Donc, exécuter xterm
dans votre script auto.sh
échouera. Si vous voulez qu'un xterm apparaisse au démarrage, vous devez l'ouvrir via les "Applications de démarrage" d'Ubuntu. L'exécution du script avec les privilèges root sera un peu plus évoluée, car vous devrez définir une entrée NOPASSWD pour celui-ci dans le /etc/sudoers
et vous assurer qu'il ne peut être modifié que par root.