Le démarrage d'une nouvelle session tmux et la détacher, tout à l'intérieur d'un script shell
Je suis en train de créer une nouvelle session tmux et exécuter la commande "vagabondage". 'Vagrant up" prend plus de 3 heures je tiens donc à se détacher de la session de sorte que je peux revenir plus tard et de vérifier l'état de la commande par la fixation, à la même session.
J'ai suivi la réponse spécifié dans le StackOverflow post pour accomplir la même.
J'obtiens l'erreur no session found
. Voici mon code:
$cat tmux_sh.sh
#!/bin/bash
echo "step 1"
tmux new-session -d -s rtb123 'vagrant up'
echo "step 2"
tmux detach -s rtb123
$./tmux_sh.sh
step 1
step 2
session not found: rtb123
Ne peut pas se reproduire. Je pense que le problème est
Vous n'êtes pas actuellement connecté à la session rtb123, de sorte que vous ne pouvez pas détacher d'elle. Tout simplement supprimer cette ligne.
vagrant up
échoue immédiatement, peut-être en raison d'être dans le mauvais répertoire. Pourquoi n'essayez-vous pas tmux new-session -d -s rtb123 'vagrant up || echo "vagrant failed" && sleep 60'
. Il va dormir assez longtemps sur erreur pour vous d'enquêter sur la situation.Vous n'êtes pas actuellement connecté à la session rtb123, de sorte que vous ne pouvez pas détacher d'elle. Tout simplement supprimer cette ligne.
OriginalL'auteur Swarup Donepudi | 2015-10-29
Vous devez vous connecter pour publier un commentaire.
Démarrer un shell, et d'envoyer de l'errance, de sorte que vous pouvez voir les erreurs.
La
C-m
signifie appuyez sur return.OriginalL'auteur mlv
Vous utilisez le
-d
commutateur lors de la création de la session. Cela signifie que la session va commencer détachée, vous n'avez pas besoin d'utiliser la commande de détachement. En outre, si votre session n'est pas en cours d'exécution lorsque vous essayez de détacher, cela signifie qu'il n'existe plus, de sorte que votre commande a probablement quitté.OriginalL'auteur petersohn