Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/08/2007, à 09: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, à 10: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, à 16: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, à 16: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, à 16: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, à 16:37)

Hors ligne

#6 Le 28/08/2007, à 16: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, à 17:00

tshirtman

Re : Impossible de lancer une commande dans un script

Santa a écrit :

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, à 21:00

Yannick_LM

Re : Impossible de lancer une commande dans un script

man echo a écrit :

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, à 22:29)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#9 Le 28/08/2007, à 21: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