Tôi đang cố gắng viết một số tập lệnh ngắn trong python sẽ bắt đầu một mã python khác trong tiến trình con nếu chưa được bắt đầu khác chấm dứt thiết bị đầu cuối & ứng dụng (Linux).Làm thế nào để chấm dứt quá trình từ Python bằng cách sử dụng pid?
Vì vậy, nó trông giống như:
#!/usr/bin/python
from subprocess import Popen
text_file = open(".proc", "rb")
dat = text_file.read()
text_file.close()
def do(dat):
text_file = open(".proc", "w")
p = None
if dat == "x" :
p = Popen('python StripCore.py', shell=True)
text_file.write(str(p.pid))
else :
text_file.write("x")
p = # Assign process by pid/pid from int(dat)
p.terminate()
text_file.close()
do(dat)
Có vấn đề thiếu kiến thức để Proces tên gọi theo pid mà ứng dụng đọc từ tập tin ".proc". Vấn đề khác là thông dịch viên nói rằng chuỗi có tên dat không bằng "x" ??? Những gì tôi đã bỏ lỡ?
Tại sao bạn truyền 'shell = True'? AFAIK nó không cần thiết trong trường hợp sử dụng của bạn. Cũng lưu ý rằng khi sử dụng 'shell = True', pid được trả về bởi' p.pid' là * không * pid của quá trình python, nhưng pid của shell sinh ra để thực thi quá trình này. – Bakuriu
+1 cho nhận xét của bạn, nhưng tôi coi nó là phù hợp vì tôi cũng cần đóng thiết bị đầu cuối. – Alex