Windows - запустить процесс в фоновом режиме после закрытия cmd

у меня есть скрипт Python, который я хочу запустить в качестве фонового процесса на Windows.

Я могу сделать это на Linux с:

python script.py &

, а затем отключите процесс от терминала с:

disown

на Windows, все, что у меня есть до сих пор это:

start /b python script.py

однако, если закрыть окно CMD, скрипт перестанет работать. Есть ли какая-либо дополнительная команда, которую мне не хватает здесь, чтобы сохранить скрипт, работающий в фоновом режиме?

24
задан multigoodverse
28.11.2022 3:27 Количество просмотров материала 2656
Распечатать страницу

2 ответа

start уже должны быть в правильном направлении. Однако,/b прикрепляет его к той же консоли. Теперь проблема заключается в том, что при закрытии окна консоли любой процесс, связанный с этой консолью, также будет закрыт.

можно использовать start без /b, затем он будет запущен в новой консоли. Если вы хотите запустить его в фоновом режиме без окна консоли, то вам нужно будет использовать VBScript или сторонний инструмент:запустить пакетный файл в полностью скрытый путь

однако, в этом случае вы больше не увидите вывод stdout/stderr. Однако вы можете перенаправить его в файл, обернув его в cmd /c your_command > stdout.txt 2> stderr.txt вызов и запуск этого через один из вышеупомянутых методов (VBScript, сторонний инструмент, ...).

кроме того, вы также можете скрыть собственное окно консоли перед выходом. Я просто написал небольшую однострочную программу, которая делает именно это (исходный код в основном ShowWindow(GetConsoleWindow(), SW_HIDE)): http://share.cherrytree.at/showfile-24286/hide_current_console.exe

таким образом, вы можете использовать start /b, и когда вы хотите "закрыть" свою консоль (технически скрыть ее), вы будете запускать hide_current_console & exit который будет скрывать консоль, а затем закрыть cmd.exe процесс (не процесс python) - в одной строке, так как вы не можете ввести exit через консоль уже был спрятан.

5
отвечен CherryDT 2022-11-29 11:15

Я нашел следующее работаемое хорошо для меня:

run python script.py
0
отвечен nikc 2022-11-29 13:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх