Comment exécuter une commande linux distante qui ne s'arrêtera pas après la fermeture du shell

-1

Il y a une commande de terminal Linux que je veux exécuter sur une machine distante. Je peux ssh sur la machine et commencer à exécuter la commande (la sortie est dirigée vers un fichier de sortie); Cependant, une fois que je ferme la connexion ssh et ferme la fenêtre de mon terminal, la commande s'arrête. Comment puis-je continuer à exécuter la commande même après avoir quitté la machine distante?

Nosrettap
la source
Ce n’est généralement pas le fonctionnement de linux ... Une commande continuerait à s’exécuter sur le "serveur" même après la déconnexion de ssh ... Pourriez-vous décrire votre distribution Linux et la commande que vous essayez d’exécuter?
Just Lucky Really
C'est une machine RedHat et la commande exécute un programme java. La commande elle-même n'aurait pas beaucoup de sens pour vous, car elle est exclusive.
Nosrettap
Avez-vous essayé d'ajouter l'esperluette après la commande? Exemple: runThis -params &
Just Lucky Really
J'ai réfléchi un peu et je me demandais si la commande que vous essayez d'exécuter est une commande 'terminal'. Donc, par exemple, si je ssh sur un serveur, et utilise vi filename, ça ne va pas fonctionner sur le serveur. Je n'ai jamais eu à contourner ce problème, mais avec un petit google, il semble que nohup peut être en mesure d'aider
Just Lucky Really
1
Avez-vous essayé de le doubler et de le doubler? En outre, "détachez" les descripteurs stdout et stderr. Exécutez-le comme suit: ((nohup mycommand 1 & gt; / dev / null 2 ​​& gt; & amp; 1) & amp;)
SadBunny

Réponses:

1

Je recommande d'utiliser écran . De la page de manuel:

Les programmes continuent de s'exécuter lorsque leur fenêtre n'est actuellement pas visible   et même lorsque toute la session d'écran est détachée de l'utilisateur   Terminal

Une alternative est nohup .

agtoever
la source