Comment puis-je obtenir que screen exécute une commande puis se détache (c'est-à-dire automatiquement dans un seul script sans autre saisie qu'au-delà du démarrage initial du script)? par exemple. Je lance myscript.sh et il démarre automatiquement une session d'écran, exécute une commande, puis se détache.
C'est facile:
screen -d -m yourcommand
Pour exécuter une seule commande à l’écran et la détacher, vous pouvez essayer:
screen -dm sleep 10
Pour exécuter plusieurs commandes, essayez:
screen -dm bash -c "sleep 10; myscript.sh"
Veuillez noter que lorsqu'un programme se termine, screen (par défaut) tue la fenêtre qui le contenait.
Si vous ne voulez pas que votre session soit supprimée une fois le script terminé, ajoutez exec sh
à la fin, par exemple:
screen -dm bash -c 'sleep 5; exec sh'
Pour lister toutes vos sessions, essayez:
screen -list
Connexes: Ecran de démarrage Unix, commande Exécuter, Détacher .
Afin de démarrer une nouvelle session en arrière-plan avec le nom 'sleepy'
screen -S sleepy -dm sleep 60
Pour tuer la session 'endormie'
screen -S sleepy -X quit
screen -dmS screen_session_name bash -c 'echo "doing stuff"; exec bash'