我有一个脚本,我在其中使用 subprocess.Popen 来启动一个外部程序,并在它启动后就使用 process.kill() 来杀死它。每次脚本试图杀死它时,我都会收到 Windows 错误 [5](拒绝访问)。我意识到程序的 pid 在打开后实际上正在发生变化。有没有办法在 Python 中监视更改的过程,或者只检索新的 pid?
这是代码:
import subprocess
import time
proc = subprocess.Popen(Path/to/WinSCP.exe)
time.sleep(2)
proc.kill()
错误:
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\Path", line 231, in __call__
self.scpsetup()
File "C:\Path", line 329, in scpsetup
proc.kill()
File "C:\Python27\lib\subprocess.py", line 1019, in terminate
_subprocess.TerminateProcess(self._handle, 1)
WindowsError: [Error 5] Access is denied