Seigneur
Bonjour!
J'ai Fedora Core 5, au cas où ça serait nécessaire de le mentionner...
J'aimerais savoir s'il est possible de laisser une application (ou un processus quelconque) fonctionner en arrière-plan, un peu à la manière de quelques processus faits par "root", qu'on ne voit pas, mais qui fonctionnent toujours lorsque l'ordinateur est allumé (session ouverte ou non).
En fait, ce que je voudrais faire, c'est être en mesure à la fois de laisser fonctionner un programme et de fermer ma session afin de permettre à quelqu'un d'autre de se connecter sous un autre utilisateur. Je n'ai aucun problème s'il faut utiliser root, puisqu'il s'agit de mon ordinateur.
J'espère avoir été assez clair.
Merci!
Philippe.
drpixel
Regardes du coté de nohup.
Sois plus précis sur le type de programme par contre.
eddy33
# nohup mon-exe &
++
herrib
Quelques explications complémentaires:
nohup permet de lancer une commande qui ne tiendra pas compte du signal de déconnexion (HANGUP) lancé lorsque l'utilisateur à l'initiative se déconnecte. La commande s'exécutera donc "indépendemment de la présence -connexion- de l'utilisateur. Attention, les doits afférents à cette commande ne sont pas modifiés.
L'opérateur & en fin de commande force l'exécution de cette commande en arrière plan (elle n'est plus "visible" du shell ouvert); mais pour autant, cette commande sera sensible au signal HANGUP: la déconnexion de l'utilisateur entraînera l'arrêt de l'exécution de la commande lancée.
Comme le précise le man nohup:
nohup ne bascule pas automatiquement la commande exécutée en arrière-
plan. Il faut le réclamer explicitement en ajoutant un ?&? à la fin de
la ligne de commande.
Pour faire apparaître les jobs en arrière plan, on utilisera la commande fg; sans mention d'un numéro de job, la commande fg portera sur sur le job en cours.
eddy33
bah, ce coup-ci tout est dit !
++
Seigneur
Bonsoir!
Merci beaucoup pour l'aide -- j'en ai également profité pour lire la documentation sur "nohup".
Cependant, on dirait que ça ne marche pas vraiment... j'ai fait quelques tests avec des applications quelconques, notamment avec xmms et bittorrent, et chaque fois que je tape, par exemple, "nohup xmms &", l'interface graphique apparaît quand même, et lorsque je la ferme, le processus est terminé (évidemment). J'ai bel et bien rajouté '&' à la fin, tel que mentionné ci-haut et dans la documentation, et pourtant...
Je n'ai vraiment aucune idée pourquoi ça fait ça. Des idées?
Merci!
Philippe.
bochecha
Ben c'est normal...
Le & a la fin veut juste dire que ton processus tourne en tache de fond, c'est a dire que tu reprends la main dans la console qui l'a lance, et qu'il lui envoit pas ses messages (erreurs et autres).
Maintenant, forcement, quand tu fermes une application, elle se ferme ^^
Seigneur
Ok... donc je ne comprends pas...
Ce que je veux, c'est avoir l'application qui tourne même si je me déconnecte... si l'application s'ouvre, alors je n'aurai pas le choix de la fermer (intentionnellement ou non) en me déconnectant. Alors, je ne pense pas comprendre nohup, et peut-être que ce n'est pas réellement ce que je cherche... à moins que j'aie réellement mal compris comment ça fonctionne...
🙁
Philippe.
bochecha
Ben moi je peux pas t'aider...
Enfin... t'as essaye de te deconnecter pour voir si l'application continuait pas a tourner quand meme ??
EDIT : je te conseille franchement d'essayer, tu te poses trop de questions 😉
Je viens de le faire et ca marche parfaitement.
$ nohup monappli &
$ ps aux | grep monappli //tu peux verifier que ton application tourne bien
//fermeture de la session
//ouverture d'une session d'un autre utilisateur
$ ps aux | grep monappli //tu peux verifier que ton application tourne bien et qu'elle a bien ete lancee par le premier utilisateur
Formidable 🙂
Seigneur
Oui oui, j'ai essayé. Et évidemment, elle se fermait. Pas grave, peut-être que ce que je veux n'est pas vraiment possible, après tout!
bochecha
Si c'est possible, relis mon post precedent (desole, je l'ai edite entre temps ^^)
EDIT : alors la je ne comprends plus rien... o_O
Je l'ai fait la premiere fois avec FAH-linux, l'executable de Folding@Home, et ca a tres tres bien marche (le processus continuait a tourner dans une autre session).
Je viens de le refaire avec rhythmbox, et la, c'est le drame... le processus n'existe pas dans la deuxieme session (memes utilisateurs dans le meme ordre que l'experience precedente...)
Sincerement, je te propose d'attendre demain que les gourous repassent... moi j'suis depasse la :-D
Pis il est tard... allez au lit 🙂
Seigneur
D'accord... merci quand même...
Simple curiosité: est-ce que Folding@Home peut fonctionner en terminal (c'est-à-dire sans interface graphique)? Il me semble que ça pourrait être la source du problème... sans en être trop sûr...
drpixel
Les applications graphiques sont automatiquement fermées lorsqu'il y a perte de connexion au serveur X.
Or, lors d'une déconnexion, c'est exactement ce qui se passe (le serveur X est fermé).
Quelle applis veux-tu laisser tourner ? Si c'est xmms, switch vers mpg321, il fonctionne en mode console.
D'ailleurs il te suffirait de le lancer depuis un tty standard et laisser la session graphique à l'utilisateur de ton choix.
Pour bittorent, il doit exister pas mal de client en mode console, le principe sera le même.
Anvil
pour les processus "non-graphiques", voyez la commande screen.
pour les processus graphiques, utilisez vnc.
bochecha
Ouais c'est ca, FAH fonctionne en console...
Bon, j'arrive tard pour te le confirmer mais t'as deja ta reponse...
Seigneur
Bon, alors merci beaucoup! Maintenant je saisi bien ce que la commande fait, ainsi que ses "contraintes" (je ne pouvais pas comprendre l'un si je ne saisissais pas l'autre, et réciproquement 🙁).
Merci à tous pour votre aide!
Philippe.
bochecha
Hey c'est quoi ce message tout triste et plein d'abandonnage ???
Oui, nohup peut pas t'aider... mais Anvil et drpixel t'ont donne d'autres pistes... Tu va pas les essayer ??? o_O
Seigneur
Salut bochecha!
Je n'ai pas abandonné -- j'ai parfaitement compris ce qu'il me restait à faire ! (Quoique je n'ai pas très bien compris "vnc"... on ne dirait pas que ce soit une commande qui ne fonctionne...).
Mais pour ce qui est du "ça doit fonctionner en console", il est bien évident qu'il y a des trucs qui fonctionnent en console qui peuvent remplacer ce que j'utilise SI un jour j'ai besoin de faire tourner quelque chose pendant que quelqu'un se connecte à mon ordinateur (pour le moment, ce n'est plus nécessaire).
Faut pas s'en faire, je suis extrêmement satisfait de tout ce que j'ai appris, et ça me convient parfaitement. 😉
Philippe.
eddy33
hum...
Le detachement d'un processus (comme on dit) a ses contraintes qu'a rappele drpixel et notamment le cas particulier d'une application cliente X11 vis a vis du serveur X11 (application serveur).
++