[Shell] Problème pour le lancement d'une app.

Résolu
Bonjour à tous,

Je viens de me faire un petit ShellBash, qui tourne sous Suse 9.3 (Linux), qui me permet de lancer de programmes avec une syntaxe bien plus longue et plus difficile à ce souvenir. Il fonctionne parfaitement.
Le seul problème, c'est que c'est le programme "transcode", et il affiche une grande quantité de lignes à l'écran (jusqu'à 250'000 pour certains films). Si je ferme la shell, le programme s'arrête, et du fait que je ne lance pas cette plication en local, je ne peut pas laisser tourner l'autre ordi pendant ce temps.

J'ai déjà essayé de rajouter un "&" à la fin de la ligne de commande, mais ça ne marche pas.
Je ne peux pas envoyer toutes les sorties vers un fichier, du fait que j'ai un tout petit DD (8Go).

En résumé, ce qui m'arrangerais serait de pouvoir lancer le programme et de pouvoir fermer la shell sans que transcode ne s'arrête.

Merci de votre aide.
Configuration: Windows XP
Suse 9.3

Opera 9.01

7 réponses

  1. Modérateur
    Salut,

    si les sorties standard ne te conviennent pas, tu peux les envoyer dans la nature (et faire pareil avec les sorties d'erreur)...

    toto.sh > null
    0
    1. Modérateur
      Lance ton programme avec la commande "nohup" :
      nohup ton_programme.sh >/dev/null &
      ;-))
      0
      1. Contributeur
        J'ai essayé et ça ne marche pas non plus.

        Même si je les redirige vers /dev/null, il y a les premières infos qui viennent à l'écran, et je n'ai pas la possibilité de mettre le programme en background, et donc je en peux pas non plus fermer la fenêtre de connection SSH ...

        Mais merci de ton aide ;-)
        0
        1. Contributeur
          Merci jipicy, ça marche parfaitement :)

          J'ai mis le nohup dans le programme, et le & dans la commande que j'execute à chaque fois, sinon j'ai des problèmes...

          Encore merci.
          0
          1. Modérateur
            Oups... j'ai z'oublié une esperluette ;-((
            nohup ton_programme.sh &>/dev/null &
            ;-))
            0
            1. Contributeur
              Encore merci de ton aide. J'ai finalement fais ainsi :

              Lancement :
              ./transcoding -i Input -o Output -d &


              Transcoding :
              #!/bin/sh
              
              del="0"
              shutdown="0"
              
              while getopts i:o:ds option
              do
                case $option in
                   i)
                     in="$OPTARG"
                     ;;
                   o)
                     out="$OPTARG"
                     ;;
                   d)
                     del="1"
                     ;;
                   s)
                     shutdown="1"
                     ;;
                   ?)
                     printf "Usage : %s : [-i Input file] [-o Output file] [-d Delete Input file]\n" $0
                     exit 2
                     ;;
                esac
              done
              
                
              nohup transcode -i "$in" -y ffmpeg --export_prof dvd-pal --export_asr 3 -o "$out" -D0 -s2 -m "$out".ac3 -J modfps=clonetype=3 --export_fps 25 >/dev/null
              
              
              if [ "$del" = "1" ]
              then
                rm $in
              fi
              
              if [ "$shutdown" = "1" ]
              then
                shutdown -h now
              fi
              
              0
              1. Modérateur
                Merci d'avoir pris le temps de poster un récapitulatif ;-))
                0