#1 Le 06/12/2009, à 15: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, à 21:00)
Hors ligne
#2 Le 06/12/2009, à 17:41
- nesthib
Re : [RESOLU] Aide traitement en arrière-plan en BASH
rajoute un & à la fin de la ligne
ta_commande &
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 06/12/2009, à 17: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, à 18:09
- Totor
Re : [RESOLU] Aide traitement en arrière-plan en BASH
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, à 18: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
comment je doit faire pour l'inséré
dans mon fichier
sudo /var/bin/./CCcam -d &
car je doi lancer le script depuis putty
Merci encord pour votre aide
Hors ligne
#6 Le 06/12/2009, à 19:38
- nesthib
Re : [RESOLU] Aide traitement en arrière-plan en BASH
@Totor
ç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
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, à 19:41)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 06/12/2009, à 20:58
- Rido
Re : [RESOLU] Aide traitement en arrière-plan en BASH
voilà ça marche maintenant Merci bcp
su
/var/bin/./CCcam -d &
exit
Hors ligne
#8 Le 06/12/2009, à 22:03
- Totor
Re : [RESOLU] Aide traitement en arrière-plan en BASH
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, à 22: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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#10 Le 09/12/2009, à 18: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/
En ligne