이벤트가 발생했을 때 코드를 실행하기 위해 하이퍼 바이저로로드/언로드되는 일부 스크립트 (현재 회사에서 작업 중)에서 작업하고 있습니다. 실제로 스크립트를 언로드하는 유일한 방법은 Ctrl - 입니다. 나는 프로세스를 자동화하는 파이썬에서 함수를 작성 중이다.리눅스에서 작업하는 동안 파이썬에서 Ctrl-C 키보드 인터럽트를 시뮬레이트합니다.
"done"
문자열을 프로그램의 출력으로 보는 즉시 vprobe
을 제거해야한다. 당신이 볼 수 있듯이
lineList = buff.readlines()
cmd = "vprobe /vprobe/myhello.emt"
p = subprocess.Popen(args = cmd, shell=True,stdout = buff, universal_newlines = True,preexec_fn=os.setsid)
while not re.search("done",lineList[-1]):
print "waiting"
os.kill(p.pid,signal.CTRL_C_EVENT)
, 내가 읽기 + 쓰기 모드로 오픈 buff
파일 기술자에 출력을 쓰고 있어요 : 나는 명령을 실행 subprocess.Popen
을 사용하고 . 나는 마지막 줄을 확인한다. 'done'
이 있으면 죽일 것입니다. 죄송하지만 CTRL_C_EVENT
은 Windows에서만 유효합니다. Linux에서 무엇을 할 수 있습니까?
참고로 예를 들어'상수 문자열로 re.search' 더 나은 '로 표현 될 수없는 lineList에'완료 '상태 [-1] : ...' – nneonneo
그래, 네 말이 맞아. 감사. –