web-dev-qa-db-fra.com

Exécution d'un script Python en arrière-plan après acceptation de l'entrée

Est-il possible pour moi d'exécuter un script Python pour qu'il s'exécute d'abord et demande les différentes entrées dont il a besoin, puis passe en arrière-plan et s'exécute tout en libérant mon terminal?

1
Rohan

Oui, lancez votre script et lorsque vous avez terminé, utilisez Ctrl+Z pour le mettre en pause. Une fois en pause, l'exécution de bg l'enverra à l'arrière-plan où elle continuera de s'exécuter. Par exemple:

$ myscript.py
Enter a number: 2
^Z
[1]+  Stopped  myscript.py
$ bg
[1]+ myscript.py &               

Le ^Z est quand j'ai appuyé sur Ctrl+Z. Maintenant, si vous voulez ramener le script au premier plan, exécutez fg.

Si vous souhaitez effectuer cette opération pour plusieurs scripts, vous pouvez utiliser jobs pour répertorier les travaux en arrière-plan:

$ jobs
[1]-  Running                 myscript1.py
[2]+  Running                 myscript2.py

Les nombres entre parenthèses sont les identifiants de travail. Pour ramener un objet spécifique au premier plan, utilisez son identifiant:

jobs 2

La commande ci-dessus apportera le second. Utilisez 1 pour le premier, 3 pour le troisième et ainsi de suite.

3
terdon