Je me suis connecté à un serveur via SSH et je me suis connecté à mysql, et je lui ai demandé d'exécuter une requête (dont les résultats sont transférés dans un CSV) qui pourrait prendre plus d'une heure. Bien que j'aie demandé à mon client d'envoyer des paquets nuls toutes les 60 secondes pour maintenir la session active, je suis toujours paranoïaque que la requête / le processus mysql puisse se terminer, donc mes questions sont:
- Une session ssh annulée (en raison de l'inactivité) va-t-elle tuer le processus de requête mysql?
- Comment puis-je m'assurer que cela ne se produit pas - le paquet nul envoie-t-il toutes les 60 secondes suffisamment?
nohup
lors de la connexion à mysql, cela persistera les requêtes en cours d'exécution à l'intérieur?nohup
cela ne vous sera pas très utile, car le mysql REPL ne sera pas attaché au terminal. Essayez d'utiliser l'un des multiplexeurs (ou dtach) que j'ai mentionnés ci-dessus à la place, ils répondront probablement mieux à vos besoins.J'ai commencé à exécuter des
screen
sessions lorsque je ssh dans une boîte, en partie pour éviter cela et comme bonus supplémentaire, j'obtiens plusieurs onglets, je ne peux pas le battre. Si je suis déconnecté pour une raison quelconque, je peux me reconnecter à ma session d'écran.Mise à jour
Pour répondre # 2, je voudrais exécuter à
mysql
partir d'un shell bash à travers une session d'écran. Cela semble compliqué, mais c'est juste:Vous pouvez éditer votre fichier ~ / .screenrc pour ajouter des légendes au bas de la session écran afin que vous puissiez garder une trace de vos onglets, renommer vos onglets, etc. Si vous êtes déconnecté, lorsque vous vous reconnectez, exécutez simplement
et cela montrera toutes les sessions détachées. Pour rattacher, exécutez simplement quelque chose comme
Ou quel que soit l'identifiant de la session écran. Vous êtes de retour là où vous vous étiez arrêté. Vous devez cependant exécuter
screen -d
le même utilisateur que celui qui a démarré la session d'écran, juste fyi, ou root bien sûr. Je ne suis pas vraiment sûr car après avoir fait ssh, j'ai toujourssudo su -
donc je n'ai pas à sudo chaque commande.la source
screen
soit judicieux, il ne répond pas directement aux deux questions énumérées par le PO.