Вы должны передать команду для запуска в сеансе экрана. Вы можете сделать это, передав команду напрямую или вызвав скрипт, который запускает любую команду, которую вы хотели.
screen -S test "python3 test.py"
Если вы используете этот метод, обратите внимание, что command ( python
) и передаваемый ему аргумент ( test.py
) находятся внутри речевых меток «..» - это может усложниться, если вы передаете аргументы, которые требуют специально отформатированных речевых меток, и это может быть, проще использовать метод ниже.
screen -S test /home/user/test.sh
где test.sh находится в / home / user /, является исполняемым ( chmod +x ./test.py
) и содержит:
#!/bin/sh python3 test.py
Преимущество второго способа заключается в том, что в сценарии можно использовать столько команд, сколько вы хотите, они будут запускаться одна за другой.
Вы можете запустить несколько команд одновременно, используя фоновую задачу:
#!/bin/sh # All 3 will run at the same time python3 test.py & python3 test1.py & python3 test2.py &
Некоторые дополнительные хитрые приемы можно найти в аналогичном вопросе по SF, и последнее, на что следует обратить внимание, это то, что при ВСЕХ этих методах сам сеанс экрана закрывается после выхода из программы / скрипта. Если вы не хотите, чтобы это делалось, вы хотите посмотреть на выполнение сеанса bash, который вызывает скрипт, а затем возвращается к сеансу bash - вот так screen -S test "someCommand; bash"
.