Vraag Start Unix-scherm, opdracht Uitvoeren, ontkoppel [duplicaat]


Deze vraag heeft hier al een antwoord:

Hoe kan screen worden gebruikt om een ​​nieuwe sessie te starten en een opdracht in die sessie uit te voeren zonder die sessie te doden?

 screen -S myScreenName runSomething

Ik heb het bovenstaande commando geprobeerd en het zegt

[screen is terminating]

Heeft het de opdracht uitgevoerd en vervolgens het scherm gedood? Ik wil graag dat het scherm wordt losgemaakt na het uitvoeren van het commando in plaats van het te doden. Hoe kan dat worden gedaan?


22
2018-02-27 02:23


oorsprong


Waarom gebruik je het scherm überhaupt als het commando gewoon onmiddellijk wordt afgesloten? - Michael Hampton♦
@MichaelHampton de opdracht wordt niet onmiddellijk afgesloten, het voert een daemon uit die naar stdout print, dus ik zou het graag in een schermsessie willen houden. Ik start de schermsessie vanuit een Ansible-Playbook. Ik weet niet waarom het scherm eindigt wanneer ik dat commando heb uitgevoerd. - Nyxynyx
Vertel de daemon dan dat hij niet moet daemoniseren. - Michael Hampton♦
@MichaelHampton Geweldig dat werkt. Kan het scherm gevraagd worden om los te koppelen na het uitvoeren van de opdracht? beproefd -d maar het zegt There is no screen to be detached matching myScreenName - Nyxynyx


antwoorden:


Dit script voorkomt het doden van sessies:

screen -dmS test bash -c 'echo waiting 5 senconds...; sleep 5; exec bash'

Vriendelijke groeten!


26
2017-10-20 17:34





om een ​​commando uit te voeren en los te maken van de sessie:

screen -d -m runSomething

11
2018-02-27 03:20



Het scherm wordt nog steeds beëindigd bij gebruik van deze opdracht. - Luc


Als je steeds de juiste letters vergeet die achter het streepje gaan, kun je net zo goed typen:

screen -h

waar je zult zien:

-dmS name     Start as daemon: Screen session in detached mode.

4
2017-11-25 16:00