View previous topic :: View next topic |
Author |
Message |
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Tue Nov 05, 2002 2:58 pm Post subject: Lancer une application en "fond" |
|
|
Salut!
Bon je sais que le sujet n'est pas très explicite, donc je développe
Je me suis installé une box linux (gentoo évidemment) pour partager ma connexion ADSL. Tout fonctionne très bien, mais je n'ai qu'un petit souci.
Je ne me connecte à cette box que par ssh (je ne lui ai pas mis d'écran, c'est donc la seule solution pratique), et j'aurais bien aimé savoir s'il y avait moyen de lancer un programme et de le laisser tourner même lors de la déconnexion?
Et d'ailleurs j'en profite aussi pour demander si l'un de vous pourrait m'expliquer comment ajouter des programmes au démarrage, j'ai déja essayé par un rc-script perso mais j'ai toujours eu des erreurs de compil (cf https://forums.gentoo.org/viewtopic.php?t=20756).
Merci! |
|
Back to top |
|
|
skuld n00b
Joined: 13 Oct 2002 Posts: 69
|
Posted: Tue Nov 05, 2002 3:49 pm Post subject: |
|
|
Méthode toute bête : tu installes screen.
C'est un utilitaire qui permet de créer des terminaux virtuels.
exemple :
tu te connecte depuis A sur ta machine
tu lances screen (par 'screen', tout bêtement)
dans ton screen, tu lances tes programmes
tu "détaches" ton screen avec la combinaison de touches Ctrl+A suivi de 'd'
tu te déconnectes
tu te connectes sur ta machine depuis B
tu rattaches ton screen avec la commande 'screen -r'
tu retrouve ton application
les raccourcis claviers utiles dans screen se lancent avec Ctrl+A suivi de :
'd' : détache un screen
'c' : crée un nouveau terminal virtuel
'n' : navigue de terminal virtuel en terminal virtuel
'A' : nomme un terminal virtuel
'"' ( le double quote ) : liste les terminaux virtuels
dans le cas ou tu perds la connexion avec ta machine sans avoir détaché auparavant ton screeen, tu peux le reprendre avec 'screen -rd' ( 'd' servant à forcer le détachement d'un screen )
man screen pour avoir la liste complète des raccourcis et paramètres de la ligne de commande |
|
Back to top |
|
|
Kinou- n00b
Joined: 04 Oct 2002 Posts: 24
|
Posted: Tue Nov 05, 2002 4:39 pm Post subject: |
|
|
il y a plus simple
pr lancer un programme en tache de fond tu le lances comme ca :
ton_prog &
le & tre le lance en tache de fond
ou si tu as lancé ton prog en oubliant le &
appuies sur ctrl +z
puis tapes
bg
il passera en background
voila
Mais c vrai ke le screen c bien pratique _________________ La Bible des Dessins Animes !
http://www.dessins-animes.com |
|
Back to top |
|
|
TGL Bodhisattva
Joined: 02 Jun 2002 Posts: 1978 Location: Rennes, France
|
Posted: Tue Nov 05, 2002 10:49 pm Post subject: |
|
|
Avec le "&", l'application dépend toujours du terminal d'où elle a été lancée -> à la deconnection, elle mourra.
Screen est est définitivemet la bonne solution pour ce genre de choses. |
|
Back to top |
|
|
sergio Apprentice
Joined: 11 Jun 2002 Posts: 265 Location: Clermont Ferrand, France
|
Posted: Wed Nov 06, 2002 8:12 am Post subject: |
|
|
TGL wrote: | Avec le "&", l'application dépend toujours du terminal d'où elle a été lancée -> à la deconnection, elle mourra.
Screen est est définitivemet la bonne solution pour ce genre de choses. |
Pour info, il suffit de lancer l'application en "nohup" pour s'affranchir de genre de problème...
exemple : nohup application [options] &
Dans ce l'application n'est pas liée au terminal d'ou elle a été lancée cela se vérifie avec un simple "ps -ef"
A+ |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Nov 06, 2002 9:15 am Post subject: |
|
|
sergio wrote: | Pour info, il suffit de lancer l'application en "nohup" pour s'affranchir de genre de problème...
exemple : nohup application [options] &
Dans ce l'application n'est pas liée au terminal d'ou elle a été lancée cela se vérifie avec un simple "ps -ef"
A+ |
J'ai essayé avec nohup, qui a l'air de faire ce que je souhaite.
Le seul problême est que lorsque je lance le prog avec
nohup prog &
il me retourne
Code: | nohup: appending output to `nohup.out'
...
[1]+ Exit 127 nohup prog |
En fait il ne laisse pas le programme en tache de fond, je ne comprends pas trop pourquoi... |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Nov 06, 2002 9:31 am Post subject: |
|
|
Mat_le_ouf wrote: | Le seul problême est que lorsque je lance le prog avec
nohup prog &
il me retourne
Code: | nohup: appending output to `nohup.out'
...
[1]+ Exit 127 nohup prog |
En fait il ne laisse pas le programme en tache de fond, je ne comprends pas trop pourquoi... |
J'ai compris pourquoi
En fait j'avais tout bêtement oublié de faire nohup ./prog &...
Donc en fait ça fonctionne très bien.
J'ai d'ailleurs aussi essayé screen qui est très sympathique, vu qu'il permet de reprendre exactement là ou on était.
Mais nohupo est quand même beaucoup moins "lourd" à utiliser...
Merci en tout cas pour l'aide rapide et efficace! |
|
Back to top |
|
|
TGL Bodhisattva
Joined: 02 Jun 2002 Posts: 1978 Location: Rennes, France
|
Posted: Wed Nov 06, 2002 11:45 am Post subject: |
|
|
sergio wrote: | TGL wrote: | Avec le "&", l'application dépend toujours du terminal d'où elle a été lancée -> à la deconnection, elle mourra.
Screen est est définitivemet la bonne solution pour ce genre de choses. |
Pour info, il suffit de lancer l'application en "nohup" pour s'affranchir de genre de problème...
|
Mea culpa, connaissais pas. s/définitivement\ la/une/. |
|
Back to top |
|
|
px Guru
Joined: 26 Sep 2002 Posts: 497 Location: Metz, France
|
Posted: Wed Nov 06, 2002 1:11 pm Post subject: |
|
|
question bête... y'a possibilité de le bring to front apres? : ) va falloir mettre ca dans les tips & trick du gentoo. _________________ Nous autres, mordus d'informatique, préférons par-dessus tout passer notre temps à bidouiller nos ordinateurs, plutôt que les utiliser pour faire quelque chose de productif. [Dave Barry] |
|
Back to top |
|
|
px Guru
Joined: 26 Sep 2002 Posts: 497 Location: Metz, France
|
Posted: Wed Nov 06, 2002 4:40 pm Post subject: |
|
|
oups j'avais oublié les commandes bg et fg : ) j'suis vraiment un lamah parfois : ) _________________ Nous autres, mordus d'informatique, préférons par-dessus tout passer notre temps à bidouiller nos ordinateurs, plutôt que les utiliser pour faire quelque chose de productif. [Dave Barry] |
|
Back to top |
|
|
guillaume n00b
Joined: 08 Nov 2002 Posts: 8
|
Posted: Fri Nov 08, 2002 10:05 am Post subject: nohup est pour toi ! |
|
|
man nohup
ou essai
$ nohup ma_commande &
en plus tu peux suivre le déroulement via un tail -f nohup.out.
Zap+ |
|
Back to top |
|
|
dioxmat Bodhisattva
Joined: 04 May 2002 Posts: 709 Location: /home/mat
|
Posted: Sat Nov 09, 2002 11:52 am Post subject: |
|
|
attention par contre si le programme en question ecrit beaucoup de choses su r la sortie standard... je me souviens dun prog que javais lance en nohup et completement oublie, il ma rempli mon disque avec le nohup.out :) |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Sat Nov 09, 2002 1:13 pm Post subject: |
|
|
Ah, c'est bon à savoir, le programme en question génére en effet un flux sur stdout, mais bon c'est léger, je pense pas que ça puisse saturer mon disque...
Pour info, est il possible de "vider" nohup.out?
J'imagine qu'un simple effacement du fichier fait l'affaire... |
|
Back to top |
|
|
dioxmat Bodhisattva
Joined: 04 May 2002 Posts: 709 Location: /home/mat
|
Posted: Sat Nov 09, 2002 1:16 pm Post subject: |
|
|
oui, evidemment, c'est un fichier comme les autres :) |
|
Back to top |
|
|
guillaume n00b
Joined: 08 Nov 2002 Posts: 8
|
Posted: Tue Nov 12, 2002 1:57 pm Post subject: Nohup.out |
|
|
Pour les gros 'nohup.out' sur de petit disque et si on a pas besoin de voir le stdout.
ln -sf /dev/null nohup.out
et lance nohup mon_soft &
Voilà.
zap+ |
|
Back to top |
|
|
Sleeper l33t
Joined: 12 Nov 2002 Posts: 667
|
Posted: Tue Nov 12, 2002 4:27 pm Post subject: |
|
|
Pour ce qui est d'effacer le fichier nohup.out, alors que le nohup tourne toujours, je ne pense pas que le simple effacement de fichier (rm) marche.
En effet, si je ne me trompe pas le fichier ne sera vraiment efface que lorsque son "reference count" atteindra 0.
Or si le programme lance via nohup tourne toujours, alors le fichier nohup.out (qui constitue sa sortie standard) est toujours en ouverture ... Le fichier ne sera plus visible par un ls mais continuera de grossir ...
C'etait d'ailleurs de cette facon que l'on faisait des fichiers temporaires invisibles : creation du fichier, ouverture du fichier, effacement du fichier alors qu'il est toujours ouvert ..
Enfin a verifier tout ca, je ne parle que de memoire |
|
Back to top |
|
|
pounard Tux's lil' helper
Joined: 17 Oct 2002 Posts: 143
|
Posted: Wed Nov 13, 2002 12:56 am Post subject: |
|
|
Quote: |
Pour les gros 'nohup.out' sur de petit disque et si on a pas besoin de voir le stdout.
ln -sf /dev/null nohup.out
et lance nohup mon_soft &
|
ou alors tu fait tout simplement nohup mon_soft >/dev/null 2>&1 &
[/quote] _________________ <!-- ceci est une signature libre -->
Ceci n'est pas un virus, rassurez vous, aucune MST ne passe par les groupes pornos sur usenet; |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Nov 13, 2002 8:36 am Post subject: |
|
|
pounard wrote: | ou alors tu fait tout simplement nohup mon_soft >/dev/null 2>&1 &
|
euh tu pourrais expliquer ta ligne de script stp
Je vois pas à quoi servent les chiffres, et quand je l'essaie elle ne fonctionne pas... |
|
Back to top |
|
|
Sleeper l33t
Joined: 12 Nov 2002 Posts: 667
|
Posted: Wed Nov 13, 2002 8:45 am Post subject: |
|
|
Sous bash ca fonctionne bien .. Quoique je l'aurais ecrite
nohup ... 1>/dev/null 2>&1 &
1> : redirige a sortie standard
2>: redirige la sortie erreur (stderr)
La ligne se lit : nohup <macommande> et redirige la sortie standard sur /dev/null et la sortie erreur sur la sortie standard (donc sur /dev/null)
Voili, voilou
PS: Attention a ne pas mettre d'espace entre le 2 et le > |
|
Back to top |
|
|
Mat_le_ouf Apprentice
Joined: 13 Sep 2002 Posts: 257 Location: France
|
Posted: Wed Nov 13, 2002 10:38 am Post subject: |
|
|
Merci beaucoup pour ces explications!
En effet ça fonctionne, il faut simplement faire attention aux espaces |
|
Back to top |
|
|
pounard Tux's lil' helper
Joined: 17 Oct 2002 Posts: 143
|
Posted: Wed Nov 13, 2002 12:35 pm Post subject: |
|
|
ah oui merci sleeper _________________ <!-- ceci est une signature libre -->
Ceci n'est pas un virus, rassurez vous, aucune MST ne passe par les groupes pornos sur usenet; |
|
Back to top |
|
|
dioxmat Bodhisattva
Joined: 04 May 2002 Posts: 709 Location: /home/mat
|
Posted: Thu Nov 14, 2002 12:38 am Post subject: |
|
|
Sleeper wrote: | Pour ce qui est d'effacer le fichier nohup.out, alors que le nohup tourne toujours, je ne pense pas que le simple effacement de fichier (rm) marche.
En effet, si je ne me trompe pas le fichier ne sera vraiment efface que lorsque son "reference count" atteindra 0.
Or si le programme lance via nohup tourne toujours, alors le fichier nohup.out (qui constitue sa sortie standard) est toujours en ouverture ... Le fichier ne sera plus visible par un ls mais continuera de grossir ... |
vivi je pensais qu'il parlais apres la fin de la commande :)
donc attention (le pb etant que bien souvent on veut garder ce fichier tant que l'appli na pas fini, au cas ou ca pourrait dire des choses interessantes...) |
|
Back to top |
|
|
Angelion Apprentice
Joined: 13 May 2003 Posts: 250
|
Posted: Sun May 18, 2003 8:29 pm Post subject: |
|
|
Pour detacher un process:
Code: |
<exec> &
disown <pid>
|
voilà ,c tout
apres tu peux te deco, ton prog restera lancé |
|
Back to top |
|
|
|