En ce moment, j'exécute une application Java par SSH sur une machine virtuelle sur Google Cloud Compute. J'émets une commande pour exécuter l'application et elle charge une console. Dès que je mets fin à la connexion SSH, l'application s'arrête. Je suppose que c'est parce que la console a été fermée.
Je voudrais que cette application (qui est un serveur) persiste après avoir arrêté SSH et, à tout moment, je voudrais pouvoir me reconnecter à la console et émettre des commandes sur le serveur.
Réponses:
Vous dites ceci:
Un peu vague dans les buts, mais je vais essayer!
Pour exécuter une commande en tant que processus d'arrière-plan sur un serveur Linux, vous devez
nohup
ajouter la commande avec et ajouter&
à la fin.La commande finale serait donc:
Les
nohup
moyens de la commande doit ignorer « accrochages » et l'esperluette qui y est&
annexé est une commande shell qui indique au système d'exécuter la commande comme processus d'arrière - plan. Vous trouverez plus d'informations sur son utilisation ici .Lorsque vous exécutez une commande comme celle-ci, le processus s'exécute, vous serez renvoyé à l'invite de commande et vous pouvez quitter la session de terminal ou même aller faire autre chose sans rapport avec cette commande pendant cette session de terminal.
la source
screen
plutôt utiliser l'utilisation car cela vous permet de revenir à la session après le lancement. Honnêtement, votre question est très vague, donc si vous pouviez la clarifier, cela pourrait aider à clarifier les choses.tail -f nohup.out
le même travail. dir.Il existe au moins trois façons de procéder:
nohup
(«pas de raccrochage»),screen
/tmux
, oudisown
. Il n'est pas clair de votre question quant à votre besoin de vous connecter au serveur et d'interagir avec le démon après vous être déconnecté.Si tel est le cas,
nohup
etdisown
ne sera pas de bons matchs que vous relâchez le processus (bien qu'il continue à fonctionner).tmux
(et aussiscreen
) gardera un terme en cours même lorsque vous.Pour plus d'informations, vous pouvez voir les pages respectives:
Désavantage de Bash (en supposant que vous exécutez Bash, bien que de nombreux autres shell incluent quelque chose de similaire)
la source
disown
commande sur Google Cloud, au moins l'instance que j'utilise, a commencé 2019 ou fin 2018. Lanohup
commande fonctionne bien, mais elle crée un fichier supplémentaire qui peut ne pas être souhaité.Pour détacher une application de son shell en cours d'exécution, la rendant persistante après la fermeture du shell, utilisez la
nohup
commande.Vous préfixez simplement votre commande normale avec
nohup
et cela devrait fonctionner.la source
De plus, si nohub ne fonctionne pas, vous pouvez utiliser screen :
de
la source