Comment faire en sorte 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.
command-line
script
gnu-screen
darkfeline
la source
la source
screen yourcommand
passer du-d
et-m
et voyez comment cela se passe en premier.zombie
option dans l'écran. Mettezzombie xy
dans votre~/.screenrc
. Il devrait également être possible de l’activer pour une session seulement b en insérantzombie xy
un autre fichier et en utilisant,-c file
mais pour une raison quelconque, cela ne fonctionne pas lorsque j’essaie. Ou tout simplement utilisersh -c 'yourcommand;while :;do sleep 9999; done'
Pour exécuter une seule commande à l’écran et la détacher, vous pouvez essayer:
Pour exécuter plusieurs commandes, essayez:
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-le
exec sh
à la fin, par exemple:Pour lister toutes vos sessions, essayez:
Connexe: écran Démarrer Unix, commande Exécuter, détacher .
la source
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
.Afin de démarrer une nouvelle session en arrière-plan avec le nom 'sleepy'
Pour tuer la session 'endormie'
la source
screen -S sleepy -dm "cd myfolder;sleep 60"
?la source
cela m’arrive quand j’appuie sur le contrôle c (sig int) pour quitter mon programme. il sort tout le chemin de tout bash. alors j'ai trouvé cela pour attraper SIGINT. et empêcher la sortie de la dernière bash. (besoin de taper exit pour sortir)
Je trouve utile d’utiliser cron pour exécuter les programmes nodejs au démarrage. et d'exécuter l'écran au démarrage. dans cron il y a des événements spéciaux syntaxe @reboot event
la source