Редактировать: Похоже, дубликат, но я вас уверяю, это не так. Я хочу убить текущий запущенный процесс чисто, а не убить отдельный процесс.
Проблема в том, что процесс, который я убиваю, не порожден подпроцессом или exec. Это в основном пытается убить себя.
Вот сценарий: программа выполняет очистку при выходе, но иногда это занимает слишком много времени. Я уверен, что я могу прекратить программу, потому что первый шаг в выходе из программы сохраняет базу данных. Как мне это сделать?
- не может использовать taskkill, так как он недоступен в некоторых установках Windows, например домашние издания XP
Tskill также не работает
win32api.TerminateProcess (handle, 0) работает , но я обеспокоен тем, что это может вызвать утечку памяти, потому что у меня не будет возможности закрыть дескриптор (программа сразу останавливается после вызова TerminateProcess). примечание: да, я вынужден выйти из него, так что обязательно должны быть некоторые несвободные ресурсы, но я хочу свести это к минимуму, насколько это возможно (так как я сделаю это только в том случае, если это займет невыносимое количество времени, для лучшего пользователя) опыт) но я не думаю, что Python будет обрабатывать gc, если он принудительно завершит работу.
В настоящее время я делаю последний, так как он просто работает. Хотя я обеспокоен несвободной ручкой. Буду очень признателен за любые мысли / предложения!