J'aimerais savoir s'il est possible de lancer un programme depuis une
connexion ssh en acces distant, et de fermer la connexion ssh sans
fermer le programme. Le but est de pouvoir lancer depuis un client putty
une commande qui prend deux heures a s'executer sur le serveur ssh, et
de pouvoir arreter putty immediatement, sans arreter la commande. (putty
est un client ssh pour windows).
Il existe des solutions complexes comme creer une tache pour crond en
utilisant juste un editeur par ssh, mais j'aimerais le faire plus
facilement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Melmoth
Dans l'article ,
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
installes screen
Dans l'article <pan.2004.10.24.18.31.53.159032@mail.rktmb.org>,
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une
connexion ssh en acces distant, et de fermer la connexion ssh sans
fermer le programme.
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
installes screen
Nicolas George
Rakotomandimby Mihamina wrote in message :
En utilisant l'opérateur '&' à la fin de l'instruction à executer. Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb .
Et tu perds aussi la sortie du find. Il faut penser à rediriger les sorties dans ce cas.
D'ailleurs, selon les cas, OpenSSH ne considèrera pas la session terminée avant que tous les file-descriptors sur le terminal n'aient été fermés.
dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est le scritp que je lance avec '&' ...
Tu peux écrire ça « { commande1; commande2; } & ».
Sinon, il y a screen qui peut être intéressant, avec les possibilités de détacher la session. man screen.
Rakotomandimby Mihamina wrote in message
<pan.2004.10.24.18.31.53.159032@mail.rktmb.org>:
En utilisant l'opérateur '&' à la fin de l'instruction à executer.
Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb .
Et tu perds aussi la sortie du find. Il faut penser à rediriger les sorties
dans ce cas.
D'ailleurs, selon les cas, OpenSSH ne considèrera pas la session terminée
avant que tous les file-descriptors sur le terminal n'aient été fermés.
dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est
le scritp que je lance avec '&' ...
Tu peux écrire ça « { commande1; commande2; } & ».
Sinon, il y a screen qui peut être intéressant, avec les possibilités de
détacher la session. man screen.
En utilisant l'opérateur '&' à la fin de l'instruction à executer. Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb .
Et tu perds aussi la sortie du find. Il faut penser à rediriger les sorties dans ce cas.
D'ailleurs, selon les cas, OpenSSH ne considèrera pas la session terminée avant que tous les file-descriptors sur le terminal n'aient été fermés.
dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est le scritp que je lance avec '&' ...
Tu peux écrire ça « { commande1; commande2; } & ».
Sinon, il y a screen qui peut être intéressant, avec les possibilités de détacher la session. man screen.
dominique becaert
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme. Le but est de pouvoir lancer depuis un client putty une commande qui prend deux heures a s'executer sur le serveur ssh, et de pouvoir arreter putty immediatement, sans arreter la commande. (putty est un client ssh pour windows).
Voir la commande screen. Notamment l'option detach. Une petite URL : http://linuxfr.org/tips/133.html -- Jusqu'ici, tout va bien ...
J'aimerais savoir s'il est possible de lancer un programme depuis une
connexion ssh en acces distant, et de fermer la connexion ssh sans
fermer le programme. Le but est de pouvoir lancer depuis un client putty
une commande qui prend deux heures a s'executer sur le serveur ssh, et
de pouvoir arreter putty immediatement, sans arreter la commande. (putty
est un client ssh pour windows).
Voir la commande screen. Notamment l'option detach.
Une petite URL : http://linuxfr.org/tips/133.html
--
Jusqu'ici, tout va bien ...
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme. Le but est de pouvoir lancer depuis un client putty une commande qui prend deux heures a s'executer sur le serveur ssh, et de pouvoir arreter putty immediatement, sans arreter la commande. (putty est un client ssh pour windows).
Voir la commande screen. Notamment l'option detach. Une petite URL : http://linuxfr.org/tips/133.html -- Jusqu'ici, tout va bien ...
Rakotomandimby Mihamina
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
Oui, En utilisant l'opérateur '&' à la fin de l'instruction à executer. Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb . dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est le scritp que je lance avec '&' ...
En gros: mets un & apres ta commande, elle s'executera en background.
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une
connexion ssh en acces distant, et de fermer la connexion ssh sans
fermer le programme.
Oui,
En utilisant l'opérateur '&' à la fin de l'instruction à executer.
Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb .
dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est
le scritp que je lance avec '&' ...
En gros:
mets un & apres ta commande, elle s'executera en background.
Fais des tests ...
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)
On Sun, 24 Oct 2004 19:59:33 +0200, frandicz wrote:
Bonjour,
Bonjour
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
Oui, En utilisant l'opérateur '&' à la fin de l'instruction à executer. Attention si tu as une ligne du genre :
updatedb ; find / -name toto.txt &
tu devra attendre la fin de updatedb . dans ce genre de cas, moi, je mets ces deux trucs dans un script et c'est le scritp que je lance avec '&' ...
En gros: mets un & apres ta commande, elle s'executera en background.
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
Sans installer screen :
Une solution simple est d'utiliser & pour lancer en tâche de fond, en redirigeant les sorties (1>sortie 2>erreur) et en faisant précéder la commande de nohup (info coreutils nohup) :
`nohup' runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out. Synopsis:
J'aimerais savoir s'il est possible de lancer un programme depuis une
connexion ssh en acces distant, et de fermer la connexion ssh sans
fermer le programme.
Sans installer screen :
Une solution simple est d'utiliser & pour lancer en tâche de fond, en
redirigeant les sorties (1>sortie 2>erreur) et en faisant précéder la
commande de nohup (info coreutils nohup) :
`nohup' runs the given COMMAND with hangup signals ignored, so that
the command can continue running in the background after you log out.
Synopsis:
J'aimerais savoir s'il est possible de lancer un programme depuis une connexion ssh en acces distant, et de fermer la connexion ssh sans fermer le programme.
Sans installer screen :
Une solution simple est d'utiliser & pour lancer en tâche de fond, en redirigeant les sorties (1>sortie 2>erreur) et en faisant précéder la commande de nohup (info coreutils nohup) :
`nohup' runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out. Synopsis:
En l'occurence, c'est plus le & que le nohup qui a un effet, en fait. L'utilité de nohup est assez négligeable.
Moulin Mathieu
Nicolas George wrote:
En l'occurence, c'est plus le & que le nohup qui a un effet, en fait. L'utilité de nohup est assez négligeable.
Nan ... Si on ferme la session ssh, le process est tué dans la foulée avec un &, mais il es détaché visuellement de la console.
Avec un nohup, la fermeture de ssh ne se répercute pas sur le process en question.
Tout dépend de ce qu'on veut. Si tu vas dans un cyber pour lancer ta commande et qu'elle met 2 heures à tourner, t'es obligé d'y rester, sauf si tu fais un nohup. Si tu lance des commandes qui prennent 2 minutes et que tu veux faire des trucs à côté, alors un & suffit.
---------------- Mathieu Moulin - lemathou at free point fr Linux ? Ma liberté ...
Nicolas George wrote:
En l'occurence, c'est plus le & que le nohup qui a un effet, en fait.
L'utilité de nohup est assez négligeable.
Nan ...
Si on ferme la session ssh, le process est tué dans la foulée avec un &,
mais il es détaché visuellement de la console.
Avec un nohup, la fermeture de ssh ne se répercute pas sur le process en
question.
Tout dépend de ce qu'on veut.
Si tu vas dans un cyber pour lancer ta commande et qu'elle met 2 heures à
tourner, t'es obligé d'y rester, sauf si tu fais un nohup.
Si tu lance des commandes qui prennent 2 minutes et que tu veux faire des
trucs à côté, alors un & suffit.
----------------
Mathieu Moulin - lemathou at free point fr
Linux ? Ma liberté ...
En l'occurence, c'est plus le & que le nohup qui a un effet, en fait. L'utilité de nohup est assez négligeable.
Nan ... Si on ferme la session ssh, le process est tué dans la foulée avec un &, mais il es détaché visuellement de la console.
Avec un nohup, la fermeture de ssh ne se répercute pas sur le process en question.
Tout dépend de ce qu'on veut. Si tu vas dans un cyber pour lancer ta commande et qu'elle met 2 heures à tourner, t'es obligé d'y rester, sauf si tu fais un nohup. Si tu lance des commandes qui prennent 2 minutes et que tu veux faire des trucs à côté, alors un & suffit.
---------------- Mathieu Moulin - lemathou at free point fr Linux ? Ma liberté ...
Nicolas George
Moulin Mathieu wrote in message <417c4e87$0$29506$:
Nan ... Si on ferme la session ssh, le process est tué dans la foulée avec un &, mais il es détaché visuellement de la console.
Tant pis pour toi, tu l'auras voulu :-Þ
Les processus sont groupés d'abord par sessions, puis par groupe. Chaque session peut (ou pas) avoir un terminal de contrôle, et un terminal ne peut contrôler au plus qu'une session. Quand un terminal est associé à une session, l'un des groupes de cette session est désigné comme groupe d'avant plan, les autres commes groupes d'arrière plan. Lorsque le terminal est fermé (notion qui n'est pas forcément clair dans tous les cas, mais n'a pas d'ambiguïté pour un pseudo-terminal), le noyau synthétise un SIGHUP pour :
- le processus leader de session, s'il existe ;
- le groupe d'avant plan.
En particulier, les groupes d'arrière plan ne reçoivent pas de signaux.
Si le shell fait bien son boulot, toute commande lancée l'est dans son propre process group, d'avant plan en général, d'arrière plan avec &. Dans ces conditions, un processus lancé avec & (et non ré-attaché ensuite) est dans un groupe d'arrière plan et n'est pas concerné par le SIGHUP.
En revanche, certains shells prennent sur eux d'envoyer eux-mêmes, quand ils se terminent, un SUGHUP aux groupes d'arrière plan qu'ils pensent contrôler.
Si tu veux lancer un processus et fermer le terminal, il suffit :
- d'éventuellement rediriger les entrées-sorties ;
- de le lancer en arrière plan ;
- de faire en sorte que le shell le laisse tranquile (avec zsh, c'est la builtin disown).
Il ne se prendra pas de SIGHUP. Et nohup n'a servi à rien.
Moulin Mathieu wrote in message
<417c4e87$0$29506$626a14ce@news.free.fr>:
Nan ...
Si on ferme la session ssh, le process est tué dans la foulée avec un &,
mais il es détaché visuellement de la console.
Tant pis pour toi, tu l'auras voulu :-Þ
Les processus sont groupés d'abord par sessions, puis par groupe. Chaque
session peut (ou pas) avoir un terminal de contrôle, et un terminal ne peut
contrôler au plus qu'une session. Quand un terminal est associé à une
session, l'un des groupes de cette session est désigné comme groupe d'avant
plan, les autres commes groupes d'arrière plan. Lorsque le terminal est
fermé (notion qui n'est pas forcément clair dans tous les cas, mais n'a pas
d'ambiguïté pour un pseudo-terminal), le noyau synthétise un SIGHUP pour :
- le processus leader de session, s'il existe ;
- le groupe d'avant plan.
En particulier, les groupes d'arrière plan ne reçoivent pas de signaux.
Si le shell fait bien son boulot, toute commande lancée l'est dans son
propre process group, d'avant plan en général, d'arrière plan avec &. Dans
ces conditions, un processus lancé avec & (et non ré-attaché ensuite) est
dans un groupe d'arrière plan et n'est pas concerné par le SIGHUP.
En revanche, certains shells prennent sur eux d'envoyer eux-mêmes, quand ils
se terminent, un SUGHUP aux groupes d'arrière plan qu'ils pensent contrôler.
Si tu veux lancer un processus et fermer le terminal, il suffit :
- d'éventuellement rediriger les entrées-sorties ;
- de le lancer en arrière plan ;
- de faire en sorte que le shell le laisse tranquile (avec zsh, c'est la
builtin disown).
Il ne se prendra pas de SIGHUP. Et nohup n'a servi à rien.
Moulin Mathieu wrote in message <417c4e87$0$29506$:
Nan ... Si on ferme la session ssh, le process est tué dans la foulée avec un &, mais il es détaché visuellement de la console.
Tant pis pour toi, tu l'auras voulu :-Þ
Les processus sont groupés d'abord par sessions, puis par groupe. Chaque session peut (ou pas) avoir un terminal de contrôle, et un terminal ne peut contrôler au plus qu'une session. Quand un terminal est associé à une session, l'un des groupes de cette session est désigné comme groupe d'avant plan, les autres commes groupes d'arrière plan. Lorsque le terminal est fermé (notion qui n'est pas forcément clair dans tous les cas, mais n'a pas d'ambiguïté pour un pseudo-terminal), le noyau synthétise un SIGHUP pour :
- le processus leader de session, s'il existe ;
- le groupe d'avant plan.
En particulier, les groupes d'arrière plan ne reçoivent pas de signaux.
Si le shell fait bien son boulot, toute commande lancée l'est dans son propre process group, d'avant plan en général, d'arrière plan avec &. Dans ces conditions, un processus lancé avec & (et non ré-attaché ensuite) est dans un groupe d'arrière plan et n'est pas concerné par le SIGHUP.
En revanche, certains shells prennent sur eux d'envoyer eux-mêmes, quand ils se terminent, un SUGHUP aux groupes d'arrière plan qu'ils pensent contrôler.
Si tu veux lancer un processus et fermer le terminal, il suffit :
- d'éventuellement rediriger les entrées-sorties ;
- de le lancer en arrière plan ;
- de faire en sorte que le shell le laisse tranquile (avec zsh, c'est la builtin disown).
Il ne se prendra pas de SIGHUP. Et nohup n'a servi à rien.