cuốn sách gpt4 ai đã làm

python - Số PID không khớp

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 12:50:31 25 4
mua khóa gpt4 Nike

Tôi đã tạo ra một quy trình bằng Python bằng mã sau (chỉ mã có liên quan):

...
_LAUNCH_CMD = '/usr/bin/omxplayer -s --vol %s %s %s'
...
cmd = self._LAUNCH_CMD % (âm lượng, đối số, tệp)
...
self._process = pexpect.spawn(cmd, timeout=5)

Nó luôn khởi động bình thường. Trong một số trường hợp, tôi cần lấy PID của một quy trình và tiêu diệt nó khỏi mã python. tôi đã cố gắng

self._process.pid

Nó đưa ra cho tôi một PID, nhưng sau một thời gian tôi nhận ra rằng nó không hoạt động vì số được trả về bởi lệnh này luôn ít hơn 10 so với quy trình thực tế. Ví dụ: khi omxplayer đang chạy và tôi kiểm tra PID bằng lệnh trước đó, nó trả về "24178", nhưng khi tôi sử dụng "pidof omxplayer.bin" thì nó trả về "24188". Tôi không biết 10 là hằng số hay có thể thay đổi được, vì vậy tôi không nghĩ nên mã hóa nó như thế này

os.system("kill -9 %s" % (self._process.pid + 10))

Có ai biết nguyên nhân hoặc giải pháp cho sự khác biệt không?

câu trả lời hay nhất

khả thi /usr/bin/omxplayer đang thực thi omxplayer.bin trình bao bọc, nó được gán một PID mới. Nếu bạn trực tiếp thực hiện omxplayer.bin, bạn sẽ tránh được vấn đề hiện tại, nhưng bạn cần phải làm điều đó trước khi khởi chạy /usr/bin/omxplayer Hệ nhị phân thực sự đang thực hiện công việc. PID là ngẫu nhiên, vì vậy bạn không thể đặt cược rằng PID sẽ luôn khác nhau 10.

Về python - số PID không khớp, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/37340957/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress