Я использую Python 2.6 в Windows 7. У меня есть файл .cmd для Windows, который вызывает Python для запуска веб-сервера CherryPy (версия 3.1.2).Я запускаю этот файл .cmd, выполняя его по приглашению в оболочке Windows CMD.Когда CherryPy замечает, что один из его зависимых файлов изменился, он перезапускается.Есть несколько проблем, которые возникают в этой конфигурации в Windows, потому что CherryPy использует для перезапуска себя
os.execv(sys.executable, args)
, но вы не можете вызвать исполняемый файл Python для файла .cmd.Мне удалось обойти эту проблему с помощью различных упражнений Python, и теперь я могу перезапустить ее, вызвав (по существу)
os.execv(sys.argv[0], args)
Но перезапущенный процесс отсоединен от клавиатуры;он поймает Ctrl-C, а затем меня спросят
Terminate batch job (Y/N)?
, но тип Y или NI перехватывается не завершающим файлом .cmd, а оболочкой CMD Windows, и он отвечает
'Y' is not recognized as an internal or external command, operable program or batch file.
Так как мне настроить Windows, чтобы перезапустить процесс в Unix, который я бы назвал «передним планом»?