[LINUX] Exécutez des tâches en arrière-plan sur le serveur sur lequel vous vous êtes connecté

Aperçu

J'en ressens beaucoup plus maintenant, mais je travaille plus à distance et de plus en plus d'opérations telles que l'apprentissage automatique sont effectuées sur des serveurs distants. La raison en est que mon ordinateur portable n'est pas très spécifique, mais il n'a pas assez de spécifications. Bien sûr, il est bon d'utiliser google colab, mais si vous ne l'utilisez pas pendant une longue période, il expirera et les performances du GPU utilisable seront limitées.

J'étais toujours en train de taper des commandes sur le serveur vers lequel je sshed, mais j'ai gardé la connexion afin de maintenir le processus que je sshed en vie. .. Mais quand j'y pensais, je n'avais pas du tout à faire ça.

manière

Commencez par simplifier la connexion SSH

https://qiita.com/kenmaro/items/a548a302228029c5c870 Comme expliqué en détail ici, en définissant l'authentification ssh et en éditant ~ / .ssh / config```, Par exemple, une connexion ssh à `` my_remote_pc```

ssh my_remote_pc

Vous pourrez établir une connexion ssh très facilement.

Exécution en arrière-plan du processus

De plus, de nombreuses personnes peuvent avoir effectué la commande en arrière-plan localement. Par exemple, si vous voulez exécuter `python main.py` ʻen arrière-plan, ajoutez simplement & `` `à la fin de la commande.

python main.py &

Faites les deux premiers en même temps

Si vous mélangez les deux ci-dessus, vous pouvez l'exécuter en arrière-plan sur le serveur sur lequel vous vous êtes connecté. Désormais, même si vous déconnectez la connexion ssh, le processus s'exécutera sur le serveur distant.

C'est facile à faire, ssh <> "<> &" . Dans l'exemple précédent,

ssh my_remote_pc "python main.py &"

Seulement ça.

Vous n'avez plus à vous soucier de vérifier la connexion ssh pour voir si le processus est en cours d'exécution.

Je pense que la plupart des gens le tiennent pour acquis, mais je suis sûr qu'il y a des gens comme moi qui font quelque chose d'incommode et d'inutile, alors j'espère que cela aide.

Postscript

Utilisez la commande screen

C'était beaucoup plus facile à faire.

Vous n'avez besoin que d'environ 3 commandes à retenir.

screen

Tout d'abord, créez un terminal virtuel (appelé session).

Ensuite, effectuez une tâche.

ctrl-a --> d

Laissez le terminal créé par cette commande. (Détacher)

screen -ls

Pour lister les sessions dans

screen -r <session id>

Reconnectez-vous avec.

Dans les environs.

fin.

Recommended Posts

Exécutez des tâches en arrière-plan sur le serveur sur lequel vous vous êtes connecté
Le jour où le serveur Flask fonctionnant sous Linux sur AWS était semi-persistant (fonctionnant en arrière-plan)
Exécutez CGI écrit en python sur le serveur de location de Sakura
Exécuter une tâche d'arrière-plan avec Fabric
Test.py n'est pas reflété sur le serveur Web dans Python3.
Exécutez un serveur Linux avec GCP
exécuter le serveur uwsgi en mode uwsgi-gevent
Exécutez TensorFlow2 sur le serveur VPS
Remarques sur l'utilisation de matplotlib sur le serveur
Exécutez le code de sortie sur le serveur Web local en tant que "A, faisant semblant d'être B" en python
Sauvegardez les données vocales acquises par le navigateur au format wav sur le serveur
Démarrez le serveur Web dans le répertoire actuel
Espace var insuffisant sur le serveur de messagerie
Exécutez AzureKinect en Python la veille de Noël.
Exécuter l'interpréteur Python dans le script
Retour sur 2016 dans le langage Crystal
Déployer et utiliser le modèle de prédiction créé en Python sur SQL Server
Exécuter le notebook Jupyter sur un serveur distant
Exécutez Python en C ++ sur Visual Studio 2017
Publier le répertoire actuel sur le serveur Web
Exécutez le serveur python wsgi sur l'unité NGINX
Connectez-vous à un serveur distant avec SSH
Conseils de dessin avec matplotlib côté serveur
Exécutez Python YOLOv3 en C ++ sur Visual Studio 2017
Exécutez yolov4 "pour le moment" dans Windows
Jusqu'à ce que l'exemple de changefinder s'exécute sur python
Lancer un serveur HTTP dans le répertoire courant
Notebook Jupyter ouvert à distance lancé sur le serveur
TensorFlow: exécuter des données apprises en Python sur Android
[CGI] Exécutez le programme Python du serveur avec Vue.js + axios et obtenez les données de sortie
La manière la plus bâclée de prendre en charge CORS avec aiohttp Server
Exécutez l'application flask sur Cloud 9 et Apache Httpd
Remarques sur les transactions dans la bibliothèque client Java dans la banque de données
Comment exécuter le module Ansible ajouté dans Ansible Tower
Enregistrer une tâche dans cron pour la première fois
Configurez un serveur gratuit sur AWS en 30 minutes
Différence de résultats en fonction de l'argument du multiprocessus.
Ecrire un histogramme à l'échelle logarithmique sur l'axe des x en python
Exécuter une commande sur le serveur Web et afficher le résultat
Jusqu'à ce que vous exécutiez le serveur Django avec Visual Studio Code
Comment exécuter Django sur IIS sur un serveur Windows
Installez django sur python + anaconda et démarrez le serveur
L'image est affichée dans l'environnement de développement local, mais l'image n'est pas affichée sur le serveur distant de VPS.
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 14) Exécutez le programme du chapitre 4 sur Google Colaboratory