Có cách nào để tạm dừng một tiến trình (chạy từ một tệp thực thi) để nó dừng tải CPU trong khi nó bị tạm dừng và đợi cho đến khi nó được bỏ tạm dừng để tiếp tục công việc của nó? Có thể trong python, hoặc theo cách nào đó có thể truy cập được bằng python.Tạm dừng quy trình?
Trả lời
Bằng cách sử dụng psutil (https://github.com/giampaolo/psutil):
>>> import psutil
>>> somepid = 1023
>>> p = psutil.Process(somepid)
>>> p.suspend()
>>> p.resume()
bạn đang nghĩ đến SIGTSTP - cùng một tín hiệu xảy ra khi bạn đẩy CTRL-Z
. Việc này sẽ tạm dừng quy trình cho đến khi nó được SIGCONT.
tất nhiên, một số chương trình chỉ có thể bắt và bỏ qua tín hiệu này, vì vậy nó phụ thuộc vào tệp thực thi. tuy nhiên, nếu bạn có thể tạm ngưng và tiếp tục thủ công, bạn cũng có thể thực hiện nó từ chương trình python. sử dụng os.kill()
và làm thế nào để tôi hủy tạm ngưng nó để nó tiếp tục hoạt động từ nơi mà trước đây? –
Gửi cho nó một SIGCONT –
SIGSTOP không thể bị chặn và sẽ chính xác hơn một chút trong ngữ cảnh này, không đến từ một tty. http://en.wikipedia.org/wiki/SIGSTOP – msw
Có một (hầu như) mẹ đẻ cách để làm điều này bằng Python, và nó khá đơn giản:
import time
time.sleep(5)
Trong này đoạn mã, 5
là số lượng giây bạn muốn tạm dừng chương trình của mình.
Điều này không trả lời được câu hỏi; đó là về tạm dừng * một quá trình *. – bfontaine
tôi chỉ thực hiện điều này với các tín hiệu trong python một cái gì đó như thế này:
def mysignalhandler(sig, frame):
print "Got " + str(sig)
if sig == signal.SIGUSR1:
do_something()
signal.signal(signal.SIGUSR1, mysignalhandler)
signal.pause()
này sẽ tạm dừng ở dòng cuối cùng và gọi do_something()
khi nó nhận được tín hiệu USR1, ví dụ thông qua một
kill -USR1 <pid>
lệnh.
Điều này sẽ chỉ hoạt động trong UNIX.
- 1. Tạm dừng quy trình trong C#
- 2. Tạm dừng/tiếp tục quy trình như PsSuspend thực hiện
- 3. Trình duyệt dừng/dừng tạm dừng thực thi tập lệnh?
- 4. Tạm dừng trong tiến trình CAKeyframeAnimation
- 5. Tạm dừng Android DownloadManager
- 6. Tạm dừng tất cả chuỗi trong quy trình hiện tại tại thời điểm chạy
- 7. Tạm dừng một quy trình trong bash đang chạy bên trong console2
- 8. Tạm dừng bằng Python
- 9. Tạm dừng NSOperation
- 10. Chuyển mạng tạm dừng
- 11. giám sát dừng quy trình con
- 12. Bị tạm dừng trong trình gỡ lỗi trong chrome?
- 13. Ngắt (tạm dừng) chạy chương trình Python trong pdb?
- 14. Cách thêm tạm dừng vào chương trình Go?
- 15. Tạm dừng trong TTS android
- 16. Tạm dừng chuyển hướng PHP
- 17. Thay đổi thông báo tạm dừng
- 18. Ví dụ MediaPlayer: dừng hoạt động như tạm dừng
- 19. Đường ray và Selenium: cách dừng/tạm dừng thực hiện kiểm tra trong trình duyệt?
- 20. Làm thế nào để dừng gỡ lỗi (hoặc tách quy trình) mà không dừng quá trình?
- 21. Tạm dừng sao chép máy chủ SQL tạm thời
- 22. Tạm dừng ứng dụng Android với Phonegap
- 23. chơi tạm dừng video HTML5 javascript
- 24. Parallel.Foreach C# Tạm dừng và dừng chức năng?
- 25. Tạm dừng thực thi JavaScript trong UIWebView
- 26. Cách tạm dừng/tiếp tục tải xuống trong iPhone (iOS)
- 27. Xác định xem quá trình có bị tạm dừng (với SIGSTOP) trên OS X với C
- 28. Quy trình node.js biết khi nào nên dừng?
- 29. Giết ứng dụng android khi tạm dừng
- 30. Chèn tạm dừng vào liên kết tel: //
bạn có nghĩa là luồng hoặc quy trình hệ thống đang chạy không? – ukanth
quy trình hệ thống đang chạy. –
Tôi sẽ có khuynh hướng giảm mức độ ưu tiên của quá trình thay vì "tạm dừng" nó. Bằng cách đó, các quy trình khác sẽ đi trước tiên –