Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Lancer une application en "fond"
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Tue Nov 05, 2002 2:58 pm    Post subject: Lancer une application en "fond" Reply with quote

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
View user's profile Send private message
skuld
n00b
n00b


Joined: 13 Oct 2002
Posts: 69

PostPosted: Tue Nov 05, 2002 3:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
Kinou-
n00b
n00b


Joined: 04 Oct 2002
Posts: 24

PostPosted: Tue Nov 05, 2002 4:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Tue Nov 05, 2002 10:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
sergio
Apprentice
Apprentice


Joined: 11 Jun 2002
Posts: 265
Location: Clermont Ferrand, France

PostPosted: Wed Nov 06, 2002 8:12 am    Post subject: Reply with quote

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
View user's profile Send private message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Wed Nov 06, 2002 9:15 am    Post subject: Reply with quote

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
View user's profile Send private message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Wed Nov 06, 2002 9:31 am    Post subject: Reply with quote

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
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed Nov 06, 2002 11:45 am    Post subject: Reply with quote

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
View user's profile Send private message
px
Guru
Guru


Joined: 26 Sep 2002
Posts: 497
Location: Metz, France

PostPosted: Wed Nov 06, 2002 1:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
px
Guru
Guru


Joined: 26 Sep 2002
Posts: 497
Location: Metz, France

PostPosted: Wed Nov 06, 2002 4:40 pm    Post subject: Reply with quote

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
View user's profile Send private message
guillaume
n00b
n00b


Joined: 08 Nov 2002
Posts: 8

PostPosted: Fri Nov 08, 2002 10:05 am    Post subject: nohup est pour toi ! Reply with quote

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
View user's profile Send private message
dioxmat
Bodhisattva
Bodhisattva


Joined: 04 May 2002
Posts: 709
Location: /home/mat

PostPosted: Sat Nov 09, 2002 11:52 am    Post subject: Reply with quote

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
View user's profile Send private message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Sat Nov 09, 2002 1:13 pm    Post subject: Reply with quote

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
View user's profile Send private message
dioxmat
Bodhisattva
Bodhisattva


Joined: 04 May 2002
Posts: 709
Location: /home/mat

PostPosted: Sat Nov 09, 2002 1:16 pm    Post subject: Reply with quote

oui, evidemment, c'est un fichier comme les autres :)
Back to top
View user's profile Send private message
guillaume
n00b
n00b


Joined: 08 Nov 2002
Posts: 8

PostPosted: Tue Nov 12, 2002 1:57 pm    Post subject: Nohup.out Reply with 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 &
Voilà.
zap+
Back to top
View user's profile Send private message
Sleeper
l33t
l33t


Joined: 12 Nov 2002
Posts: 667

PostPosted: Tue Nov 12, 2002 4:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
pounard
Tux's lil' helper
Tux's lil' helper


Joined: 17 Oct 2002
Posts: 143

PostPosted: Wed Nov 13, 2002 12:56 am    Post subject: Reply with quote

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
View user's profile Send private message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Wed Nov 13, 2002 8:36 am    Post subject: Reply with quote

pounard wrote:
ou alors tu fait tout simplement nohup mon_soft >/dev/null 2>&1 &

euh tu pourrais expliquer ta ligne de script stp 8O
Je vois pas à quoi servent les chiffres, et quand je l'essaie elle ne fonctionne pas...
Back to top
View user's profile Send private message
Sleeper
l33t
l33t


Joined: 12 Nov 2002
Posts: 667

PostPosted: Wed Nov 13, 2002 8:45 am    Post subject: Reply with quote

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
View user's profile Send private message
Mat_le_ouf
Apprentice
Apprentice


Joined: 13 Sep 2002
Posts: 257
Location: France

PostPosted: Wed Nov 13, 2002 10:38 am    Post subject: Reply with quote

Merci beaucoup pour ces explications!
En effet ça fonctionne, il faut simplement faire attention aux espaces :)
Back to top
View user's profile Send private message
pounard
Tux's lil' helper
Tux's lil' helper


Joined: 17 Oct 2002
Posts: 143

PostPosted: Wed Nov 13, 2002 12:35 pm    Post subject: Reply with quote

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
View user's profile Send private message
dioxmat
Bodhisattva
Bodhisattva


Joined: 04 May 2002
Posts: 709
Location: /home/mat

PostPosted: Thu Nov 14, 2002 12:38 am    Post subject: Reply with quote

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
View user's profile Send private message
Angelion
Apprentice
Apprentice


Joined: 13 May 2003
Posts: 250

PostPosted: Sun May 18, 2003 8:29 pm    Post subject: Reply with quote

Pour detacher un process:

Code:

<exec> &
disown <pid>


voilà ,c tout :D

apres tu peux te deco, ton prog restera lancé
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum