Existe-t-il un moyen de démarrer l'écran avec un processus d'arrière-plan, mais de ne pas le compléter lors de la sortie du processus?

Démarrer une séance d'écran avec un processus d'arrière-plan en utilisant -d -m Se tourne vers l'achèvement de la session d'écran lors de la sortie du processus.

Existe-t-il un moyen de forcer une session d'écran à rester après avoir sorti le processus, mais en même temps, exécutez-la sans interaction avec l'utilisateur?
Invité:

Giselle

Confirmation de:

Si votre processus peut utiliser l'un des

/etc/profile

ou

/etc/bash.bashrc

et leur approprié

$HOME

Fichiers, cela peut fonctionner pour vous:

screen -d -m bash  --init-file background-shell-script

Lorsque "background-shell-script" Se termine, la session d'écran vous attendra à l'invitation de la coquille lorsque vous réintégez

screen -r

. Si vous re-connectez à l'achèvement du processus, vous verrez tous les éléments de sortie qu'il crée et obtiendrez une invitation de la coquille lorsqu'elle est terminée.

Pour obtenir des fichiers de démarrage ordinaires, ajoutez-les au début du script:

. /etc/profile
# more source statements, if needed
# do your stuff here

Alice

Confirmation de:

Il est possible que vous appelle le script shell et appelez la coquille avec l'option afin qu'elle continue de fonctionner après la fin du scénario.

Christine

Confirmation de:

Le point clé ici est ce que vous voulez que le processus se séparait de l'enveloppe de contrôle ou tty. Le moyen le plus simple de le faire - Vient de courir nohup, c'est à dire nohup anyprocess. man nohup Pour plus d'informations.

Il n'est pas clair pourquoi vous voulez que la session d'écran reste après avoir sorti le processus. Vraisemblablement pour capturer la sortie, mais il peut être facilement redirigé.

La seule raison d'utiliser screen - Si vous souhaitez que le processus soit exécuté, mais il a toujours besoin d'une entrée standard / production. Dans tous les cas, il est recommandé d'éviter cela, si possible, et d'utiliser simplement nohup, Et s'il s'agit d'un processus long, intégrez-le dans le processus de chargement de la machine en tant que service long.

Pour répondre aux questions, connectez-vous ou registre