#1 Le 28/08/2007, à 08:01
- littlewing
Impossible de lancer une commande dans un script
Bonjour,
j'essaye vainement de lancer une commande dans un script shell (1 service ) et ca fonctionne qd je le lance en console manuellement mais pas dans le contexte du script shell
Voici le script SHELL :
#!/bin/sh
if [ -e /dev/snd/midiC0D1 ]
then
----> echo -e '\360\000\040\041\141\000\000\000\177\000\367'>/dev/snd/midiC0D1
echo 'Box initialized' >> /var/log/messages
else
echo 'The file /dev/snd/midiCOD1 doesnt (still ?) exist' >> /var/log/messages
fi
La ligne qui fait defaut est celle marque par la fleche
Quand je la lance en console de la maniere suivante :
sudo echo -e '\360\000\040\041\141\000\000\000\177\000\367'>/dev/snd/midiC0D1
ca marche ( peut etre que ca vient du fait que le sudo ne s applique qu a l echo et pas a la redirection....)
Par contre, des lors que je veux le lancer en service, la ca ne fonctionne pas
Voici quelques informations sur les fichiers concernes
Le script
$ ls -al /etc/init.d/start-creativebox
-rwxr-xr-x 1 root root 249 2007-08-28 08:06 /etc/init.d/start-creativebox
Le peripherique
ls -al /dev/snd/midiC0D1
crw-rw---- 1 root audio 116, 5 2007-08-28 08:13 /dev/snd/midiC0D1
Comment puis je faire fonctionner cette commande en mode "service" ?
Merci d avance de votre aide
Alexandre
[Ubuntu 12.10 32 bits /nvidia]
Mes notes et tutoriaux sur UBUNTU/LINUX
Hors ligne
#2 Le 28/08/2007, à 09:18
- Santa
Re : Impossible de lancer une commande dans un script
Salut,
J'ai eu un problème similaire qui s'est résolu en remplaçant le #!/bin/sh de la première ligne par #!/bin/bash
Donc essaye toujours même si je ne saurai expliquer pourquoi ça marcherait...
S'il n'y a pas de réponse simple, c'est peut-être que le problème est compliqué...
Hors ligne
#3 Le 28/08/2007, à 15:08
- Link31
Re : Impossible de lancer une commande dans un script
Parce que le shell par défaut (/bin/sh) dans les dernières version d'Ubuntu n'est plus bash mais dash, qui est plus léger mais qui a moins de fonctionnalités que bash.
Hors ligne
#4 Le 28/08/2007, à 15:10
- Santa
Re : Impossible de lancer une commande dans un script
Certes, mais /bin/sh est un lien symbolique vers dash donc je vois pas pourquoi #!/bin/bash marche mieux que #!/bin/sh
S'il n'y a pas de réponse simple, c'est peut-être que le problème est compliqué...
Hors ligne
#5 Le 28/08/2007, à 15:35
- tshirtman
Re : Impossible de lancer une commande dans un script
Parce que dash n'est pas bash... et donc ce qui fonctionne sous bash ne fonctionne pas forcement sous sh (dash).
edit: si pas "service" tu entends lancé automatiquement periodiquement, jette un euil a "man crontab".
Dernière modification par tshirtman (Le 28/08/2007, à 15:37)
Hors ligne
#6 Le 28/08/2007, à 15:43
- Santa
Re : Impossible de lancer une commande dans un script
Mouais. Enfin je faisais rien de bien bizarre dans mon script. En tout cas rien que sh ne pourrais pas faire.
Bref, loin de moi l'idée de pourrir ce thread, car on ne sait toujours pas si celà a résolu ce problème ci.
S'il n'y a pas de réponse simple, c'est peut-être que le problème est compliqué...
Hors ligne
#7 Le 28/08/2007, à 16:00
- tshirtman
Re : Impossible de lancer une commande dans un script
Mouais. Enfin je faisais rien de bien bizarre dans mon script. En tout cas rien que sh ne pourrais pas faire.
Bref, loin de moi l'idée de pourrir ce thread, car on ne sait toujours pas si celà a résolu ce problème ci.
Pour savoir c'est simple, tu lance sh a la main et tu copie les lignes qui posaient problèmes, tu verras ce que dash ne sait pas faire dans ton cas.
Hors ligne
#8 Le 28/08/2007, à 20:00
- Yannick_LM
Re : Impossible de lancer une commande dans un script
NOTE: your shell may have its own version of echo, which usually super‐
sedes the version described here. Please refer to your shell’s docu‐
mentation for details about the options it support
bash et dash n'ont pas la même version d'echo ...
Pour s'en convaincre :
yannick@Brest~ echo "a\b"
a\b
yannick@Brest~ dash
$ echo "a\nb"
a
b
$ exit (*)
(*)éventuellement ...
EDIT :
(Comment ai-je fais pour me faire griller avec un délai de quelques heures ?
Simplement avec une roulette trop rapide.)
Dernière modification par Yannick_LM (Le 28/08/2007, à 21:29)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#9 Le 28/08/2007, à 20:08
- goodluck
Re : Impossible de lancer une commande dans un script
Salut,
Les scripts 'services' se trouvent sous Debian dans /etc/init.d et le logiciel graphique permettant d'insérer cette commande aux bons niveaux de démarrage se nomme pour moi ksysv (désolé je n'utilise jamais Gnome)
Amicalement, Gerard ;)
http://counter.li.org/cgi-bin/certificate.cgi/302199
http://www.worldcommunitygrid.org/
Hors ligne