Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2011, 19h33   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 32
Points : 12
Points : 12
Par défaut reprendre la main sur un programme

Bonjour,

Sous linux, si on lance un programme qui donne lieu à une console propre à lui et on perd la connexion à la machine, comment peut on reprendre la main sur le programme quand on se connecte de nouveau ?

Merci
g.abdou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/02/2011, 19h45   #2
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Par défaut top -u user

salut,
je sais pas ce que tu veux faire mais je pense que la première chose à faire et de vérifier que ton programme tourne toujours en faisant :
ou
a+,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/02/2011, 19h59   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
beaucoup d'applications vont coupé dans un tel cas et se killer

par prudence quand on fait une manipulation importante on la lance tjrs de telle sorte qu'elle soit rattaché au processe 1 et pas au process de connection

en nohup donc

par exemple

Code :
ssh user@host "nohup commande & "
en cas de crash de la connection on se reconnecte et on peut faire une remise en foreground de la tache en question
jobs pour lister les taches lancés comme ça
exemple
Code :
1
2
3
4
$ jobs
%1 backup.sh 
%2 tar 
$

Code :
1
2
3
 
$fg %1
Backup ....
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/02/2011, 21h07   #4
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
oui bien vu,
avec le nohup même si tu te fais déconnecter ton appli continue de tourner, tu peux fermer ton shell sans soucis.
Code :
1
2
3
4
5
6
7
8
9
10
11
NOHUP(1)                                                    User Commands                                                   NOHUP(1)
 
NAME
       nohup - run a command immune to hangups, with output to a non-tty
 
SYNOPSIS
       nohup COMMAND [ARG]...
       nohup OPTION
 
DESCRIPTION
       Run COMMAND, ignoring hangup signals.
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/02/2011, 00h51   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 32
Points : 12
Points : 12
pour etre plus précis, j'ai un programme en C que je lance sur la machine et qui va tourner tout le temps, même si je me déconnecte il reste là (je vérifie avec ps -ef)

le probleme est que la commande jobs ne me donne rien, peut etre parce que c pas un script shell ?!

j'ai essayé de mettre fg avec le PID, mais ça marche pas !

any other guess ?

Merci
g.abdou est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/02/2011, 12h29   #6
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 585
Points : 9 585
Bonjour,

Lance-le avec screen. Tu pourras ensuite le recuperer avec cette meme commande.

Par ailleurs, tu dis lancer un progamme C qui tourne tout le temps. C'est donc qu'il se demonise ? Si oui, comment, et est-ce que son pere est bien 1 ?

Si c'est le cas, le plus simple est de prevoir un moyen de communication avec ton demon (memoire partagee, socket, signal, ...)
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 15/02/2011, 19h16   #7
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
si le programme démonne, le mieux est de le lancer par l'inittab en mode respawn ainsi quoi qu'il arrive, meme si tu le kill, il redémarre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 21h21   #8
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 32
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 32
Points : 12
Points : 12
le truc c'est que le programme ce n'est moi qui l'a fait !
j'ai vu que il donne une option de démarrage avec un numéro de port, socket ...
je suppose donc qu'il donne la possibilité de s'y connecter:

Code :
Usage: %s [-t] [-g] [-c config] [-s script] [-d device] [-p port|-u socket]
je l'ai lancé avec les 2 option port et socket, et il s'est lancé en tache de fond avec le PPID 1 :

Code :
root     22230     1  0 21:41 ?        00:00:00 ./aftr -p 5000 -u aftr
Comment on fait alors pour reprendre la main ?

Merci.
g.abdou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/03/2011, 10h50   #9
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 585
Points : 9 585
Bonjour,

Tu as la commande "netstat -a" pour voir si un programme ecoute sur une socket. Dans ton cas, je pense que :
devrait correspondre a ton cas.

Si ton programme ecoute sur une socket, c'est un bon debut, mais encore faut-il savoir lui parler ! Or si tu ne l'as pas ecrit, tu as peu de chances de reussir a savoir ce qu'il attend...

Une autre solution consiste a le lancer avec screen, qui te permet de recuperer la main dessus meme si tu perds la connexion.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web