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 06/12/2009, à 16:30

Rido

[RESOLU] Aide traitement en arrière-plan en BASH

bonjour voilà j ai fais un bash pour me faciliter la tache

#!/bin/sh
clear
echo

echo "====> 1. Modifier le fichier"
echo "====> 2. Lancer le programme"
echo "====> 3. Arreter le programme"
echo
echo

echo -n "Faite votre choix ? "
read repense
echo

if [ "$repense" = "1" ]
then
	sudo gedit /var/etc/CCcam.cfg
fi

if [ "$repense" = "2" ]
then
       sudo /var/bin/./CCcam -d

fi

if [ "$repense" = "3" ]
then
	sudo killall /var/bin/CCcam
fi

quand je lance ça

sudo /var/bin/./CCcam -d

si je ferme la console le programme s'arrête

aidé moi svp
Merci

Dernière modification par Rido (Le 06/12/2009, à 22:00)

Hors ligne

#2 Le 06/12/2009, à 18:41

nesthib

Re : [RESOLU] Aide traitement en arrière-plan en BASH

rajoute un & à la fin de la ligne

ta_commande &

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 06/12/2009, à 18:42

®om

Re : [RESOLU] Aide traitement en arrière-plan en BASH

(et ferme ta console avec Ctrl+D ou exit, pas avec la X)

Hors ligne

#4 Le 06/12/2009, à 19:09

Totor

Re : [RESOLU] Aide traitement en arrière-plan en BASH

nesthib a écrit :

rajoute un & à la fin de la ligne

ta_commande &

ça ne suffit pas :

nohup ta_commande &

ou

ta_commande &
disown -h %+

-- Lucid Lynx --

Hors ligne

#5 Le 06/12/2009, à 19:52

Rido

Re : [RESOLU] Aide traitement en arrière-plan en BASH

merci pour votre repense
je vien de teste  sur un terminal
ta_commande &
suivi de Ctrl+D
et ça marche lol
comment je doit faire pour l'inséré
dans mon fichier

sudo /var/bin/./CCcam -d &

car je doi lancer le script depuis putty roll

Merci encord pour votre aide

Hors ligne

#6 Le 06/12/2009, à 20:38

nesthib

Re : [RESOLU] Aide traitement en arrière-plan en BASH

@Totor

Totor a écrit :

ça ne suffit pas :

nohup ta_commande &

ou

ta_commande &
disown -h %+

corrige moi si je me trompe, mais nohup ne sert-il pas à rien tant que tu es connecté à ta session graphique?
chez-moi un simple & suffit à lancer une commande qui résiste à la fermeture du terminal

@Rido

Rido a écrit :

comment je doit faire pour l'insérer dans mon fichier car je dois lancer le script depuis putty

modifie juste la commande dans ton fichier de script

Dernière modification par nesthib (Le 06/12/2009, à 20:41)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 06/12/2009, à 21:58

Rido

Re : [RESOLU] Aide traitement en arrière-plan en BASH

voilà ça marche maintenant big_smile Merci bcp

su 
/var/bin/./CCcam -d &
exit

Hors ligne

#8 Le 06/12/2009, à 23:03

Totor

Re : [RESOLU] Aide traitement en arrière-plan en BASH

nesthib a écrit :

corrige moi si je me trompe, mais nohup ne sert-il pas à rien tant que tu es connecté à ta session graphique?
chez-moi un simple & suffit à lancer une commande qui résiste à la fermeture du terminal

Pas forcément, pour te convaincre, voici un petit script :

#!/bin/bash
for((a=0;a<1000;a++))
do
sleep 1
done

On est ok que son exécution devrait durer 1000 secondes. Ce qui nous laisse largement le temps de vérifier son existence dans la table des processus...
Appelons-le sleep1000.sh et rendons-le exécutable.

Ouvre 2 xterm (ou équivalent). Dans l'un exécute le script ./sleep1000.sh & et dans l'autre lance la commande ps -fC sleep1000.sh
En toute logique, le processus apparaît. Ferme le xterm dans lequel il s'exécute puis vérifie à nouveau son existance...
Ben il a disparu ...

Tu me diras...ah ouais mais ce n'est pas une application graphique :
autre exemple :

mplayer <uneVideo> </dev/null >&/dev/null &

Dans ce cas, nohup n'a aucun effet (et je ne sais pas pourquoi même si je pense que cela est dû au redirections) : si tu fermes ton term, mplayer se ferme. Cependant, disown -h %+ permet de fermer le term tout en concervant mplayer.


-- Lucid Lynx --

Hors ligne

#9 Le 06/12/2009, à 23:23

nesthib

Re : [RESOLU] Aide traitement en arrière-plan en BASH

justement j'ai vérifié avant de poster, j'ai fait précisément la même commande que toi

for (( i=1 ; i<20 ; i++ )); do beep ; sleep1 ; done &

puis j'ai quitté le terminal ([ctrl]+[d]) et j'ai bien entendu mes bips jusqu'au bout

ce que je voulais dire par "graphique" c'est que (de ce que j'ai compris) la commande nohup permet de ne pas rendre dépendant un process d'un utilisateur, donc je suppose que si je me déconnectais de toutes mes sessions, mon programme se terminerait alors.

Qu'en penses-tu?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#10 Le 09/12/2009, à 19:19

sputnick

Re : [RESOLU] Aide traitement en arrière-plan en BASH

Si tu veut faire propre :

#!/bin/bash

clear

select item in "Modifier le fichier" "Lancer le programme" "Arreter le programme"; do
    case $item in
        Modifier*)
            sudo gedit /var/etc/CCcam.cfg
            break
            ;;
        Lancer*)
            sudo /var/bin/./CCcam -d
            break
            ;;
        Arreter*)
            sudo killall /var/bin/CCcam
            break
            ;;
        *)
            echo >&2 "Mauvais choix !"
            ;;
    esac
done

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne