Forum Programmation.shell rc.local mlnet

Posté par  .
Étiquettes : aucune
0
27
sept.
2005
Salouté,

j'ai juste un petit blem, je voudrait démarrer mlnet au démarrage, j'ai donc modifier rc.local:

if [ su jul -c /usr/local/bin/mlnet & ] ; then
echo -n 'mlnet demarrer !'
fi
echo -n 'mlnet non demarrer !'

Mais j'obtien:

/etc/rc.d/rc.local: line 7: [: missing `]'
/etc/rc.d/rc.local: line 7: ]: command not found
mlnet non demarrer !

Je me pencherait sur l'ABS un de ces jours http://abs.traduc.org/abs-3.5-fr/(...) .
Mais la c'est juste pour faire rapide.
Puis comment appliquer un couleur a un echo -n ?
  • # pas tres propre

    Posté par  . Évalué à 1.

    pourquoi ne pas faire un script init.d ?

    de plus, tu peux essayer ne tester le retour du lancement de mlnet avec if [ $? == 1 ] en le lanceant juste avant, mais je sais pas si ca va marcher :p

    ou alors encadre ta commande de $( ) ou peut etre de `` .. ..
  • # re

    Posté par  . Évalué à 2.

    un petit passage par man bash t'aurait éviter le passage par les forums mais bon...

    Il faut savoir que le signe utilisé pour entourer la condition dépend de la condition.

    Dans ton cas, il faut utiliser () et non [], exemple:

    [gco@gc]:~% if ( ! grep -q binarym /etc/passwd ) ; then echo coin ; fi
    coin

    pour l'arithmétique, il faut utiliser (()), exemple:
    [gco@gc]:~% A=2
    [gco@gc]:~% if (($A==2)) ; then echo coin ; fi
    coin
    [gco@gc]:~% if (($A==3)) ; then echo coin ; fi
    [gco@gc]:~%

    etc ...

    Pour la couleur: echo "\033[1;31mplop" t'affichera plop en rouge gras, fait varier ton 31 pour changer de couleur et vire le 1; pour que cela ne soit plus en gras.


    Je me pencherait sur l'ABS un de ces jours http://abs.traduc.org/abs-3.5-fr/(...)(...) .

    Mais la c'est juste pour faire rapide.


    Euh là t'exagère ... lire la page de man de bash ou jeter un oeil à ton lien aurait été plus rapide que d'attendre la réponse ...
    • [^] # Re: re

      Posté par  . Évalué à 1.

      Dans ton cas, il faut utiliser () et non [], exemple:
      Ca marche, mais c'est inutile de lancer un sous-processus. Il n'y a tout simplement rien à mettre, et pour plusieurs commandes, il y a {}.

      De toute façon, écrire
      if su jul -c /usr/local/bin/mlnet & then
      # ...

      n'a aucun sens. La seule chose qu'on peut vérifier à ce stade, c'est que /usr/local/bin/mlnet existe et est exécutable par jul. Est-ce que mlnet s'initialisera correctement ? Ca, on le saura bien après, et bash doit prendre sa décision avant.
      "Si une commande se termine par l'opérateur de contrôle &, l'interpréteur l'exécute en arrière-plan, dans un sous-shell. L'interpréteur n'attend pas que la commande se termine et retourne un code 0." (man bash)

      Peut-être que mlnet propose un paramètre pour rester en tâche de fond et retourner.
  • # Gnome c'est simple :)

    Posté par  . Évalué à 1.

    Si tu as le bonheur d'utiliser Gnome, il y a dans le panneau de controle de Gnome-> Avancé -> Sessions un outil graphique qui permet d'énoncer les programmes que tu veux démarrer en même temps que ta session Gnome. En 2 coups de cuillière à pot et sans script, tu lances Mlnet et ton client Jabber
  • # Finalement

    Posté par  . Évalué à 1.

    Finalement j'ai opté pour:

    if [ `tty` == /dev/tty1 ]; then
    echo -e '\E[37;44m'"\033[ mlnet demarrer !\033[0m"
    nohup mlnet &
    fi

    Dans mon .bashrc

    Merci pour vos réponse

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.