web-dev-qa-db-fra.com

Comment exécuter une commande à l'écran et se détacher?

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.

68
darkfeline

C'est facile:

screen -d -m yourcommand
102
Alan Curry

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 .

42
kenorb

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      
15
Michal Zmuda
screen -dmS screen_session_name bash -c 'echo "doing stuff"; exec bash'
3
tkjef