Vous devez passer la commande à exécuter dans la session d'écran. Vous pouvez le faire en passant la commande directement, ou en appelant un script qui exécute la commande que vous voulez.
screen -S test "python3 test.py"
Si vous utilisez cette méthode, notez que la commande ( python
) et l'argument qui lui est passé ( test.py
) sont tous les deux à l'intérieur des marques d'expression " .. " - cela peut devenir compliqué si vous passez des arguments qui nécessitent des marques d'expression spécifiquement formatées, et il est peut-être plus facile d'utiliser la méthode ci-dessous.
screen -S test /home/user/test.sh
où test.sh se trouve dans /home/user/, est exécutable ( chmod +x ./test.py
) et contient :
#!/bin/sh
python3 test.py
L'avantage de la deuxième façon est que vous pouvez avoir autant de commandes que vous voulez dans le script, elles s'exécuteront les unes après les autres.
Vous pouvez faire en sorte que plusieurs commandes soient exécutées "en même temps" en utilisant l'arrière-plan de la tâche :
#!/bin/sh
# All 3 will run at the same time
python3 test.py &
python3 test1.py &
python3 test2.py &
Des astuces supplémentaires peuvent être trouvées à un question similaire sur SF Une dernière chose à noter est qu'avec TOUTES ces méthodes, la session d'écran elle-même se ferme lorsque votre programme/script se termine. Si vous ne voulez pas qu'il fasse cela, vous pouvez envisager d'exécuter une session bash, qui appelle le script et retourne ensuite à la session bash - comme ceci screen -S test "someCommand; bash"
.