Lancer un script au démarrage
aida_e2s
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
aida_e2s Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
aida_e2s Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
J'essaye de lancer un script au démarrage de mon débian (raspbian pour être plus précise, je suis sur raspberry).
Voici mon script :
#! /bin/sh
# /etc/init.d/script_auto_run
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $portmap
# Should-Stop: $portmap
# X-Start-Before: nis
# X-Stop-After: nis
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
case "$1" in
start)
echo "Starting..."
cd /home/pi/demo_app/
sudo ./demo_app&
;;
stop)
echo "Stop..."
;;
*)
exit 1
;;
esac
exit 0
1- Je le place dans /etc/init.d/
2- Je le rends exécutable avec sudo chmod 755 script_auto_run
3- Quand j'essaye de le tester avec sh script_auto_run start ça marche
4- Je colle les liens avec update-rc.d script_auto_run defaults (rien à signaler)
Sauf que quand je démarre, il me fait absolument n'importe quoi. Le programme en lui même envoie de simples commandes en série (beaucoup) et ce que je reçois c'est du charabi si je puis dire... sachant que lorsque je le lance à partir du shell manuellement, le programme fonctionne très bien.
Est ce que ça a un rapport avec l'exécution en mode root ? Vous avez une astuce pour changer ça d'ailleurs ?
Merci :)
J'essaye de lancer un script au démarrage de mon débian (raspbian pour être plus précise, je suis sur raspberry).
Voici mon script :
#! /bin/sh
# /etc/init.d/script_auto_run
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $portmap
# Should-Stop: $portmap
# X-Start-Before: nis
# X-Stop-After: nis
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
case "$1" in
start)
echo "Starting..."
cd /home/pi/demo_app/
sudo ./demo_app&
;;
stop)
echo "Stop..."
;;
*)
exit 1
;;
esac
exit 0
1- Je le place dans /etc/init.d/
2- Je le rends exécutable avec sudo chmod 755 script_auto_run
3- Quand j'essaye de le tester avec sh script_auto_run start ça marche
4- Je colle les liens avec update-rc.d script_auto_run defaults (rien à signaler)
Sauf que quand je démarre, il me fait absolument n'importe quoi. Le programme en lui même envoie de simples commandes en série (beaucoup) et ce que je reçois c'est du charabi si je puis dire... sachant que lorsque je le lance à partir du shell manuellement, le programme fonctionne très bien.
Est ce que ça a un rapport avec l'exécution en mode root ? Vous avez une astuce pour changer ça d'ailleurs ?
Merci :)
A voir également:
- Lancer un script au démarrage ubuntu
- Ordinateur lent au démarrage - Guide
- Rebooter un pc au démarrage - Guide
- Qu'est ce qui se lance au démarrage de l'ordinateur - Guide
- Forcer demarrage pc - Guide
- Lancer une application au démarrage windows 10 - Guide
C'est assez étonnant de mettre la commande sudo dans un script qui est lancé au démarrage car de toute façon il sera lancé en root. Tu devrais enlever sudo et laisser le chemin absolu de demo_app.
Le script se lance au démarrage mais le comportement est étrange. Le programme communique avec un écran et il envoie n'importe quoi, il y a tout et rien qui s'affiche... ça peut avoir un rapport avec l'exécution en mode root ?
Merci :)
#! /bin/sh
# /etc/init.d/script_auto_run
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $portmap
# Should-Stop: $portmap
# X-Start-Before: nis
# X-Stop-After: nis
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
cd /home/pi/demo_app
./demo_app
exit 0
J'ai bien le script qui s'exécute au démarrage mais mon application affiche n'importe quoi. J'ai des rayures sur mon écran et les icônes m'affichent des grisailles. J'ai l'impression que mon écran (qui communique en série) reçoit des choses au démarrage qui le font buguer. Sachant que dans mon programme, j'ouvre une communication série au tout début...
J'ai du suivre ceci :
Pour supprimer l'utilisation de l'UART du démarrage, il faut éditer le fichier /boot/cmdline.txt, supprimer la partie en rouge :
/boot/cmdline.txt Avant : dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait Après : dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Merci de ton aide :)