我必須連續監視一個進程,並使用進程ID來監視進程。我編寫了一個程序,在進程停止後發送一封電子郵件,以便我手動重新安排它,但是我經常忘記重新安排進程(基本上是另一個Python程序)。然後,我遇到了apscheduler模塊,並使用cron風格計劃(http://packages.python.org/APScheduler/cronschedule.html)在進程停止後產生一個進程。現在,一旦進程的PID已被殺死,我就可以產生進程,但是當我使用apscheduler產生它時,我無法獲得新調度進程的進程ID(PID)。因此,我無法監控這個過程。 apscheduler中是否有函數來獲取預定進程的進程ID?使用python apscheduler調度作業
1
A
回答
3
而不是依靠APSchedule來返回PID,爲什麼不讓你的程序報告PID本身。守護進程通常具有pidfiles,它們是位於已知位置的文件,只包含正在運行的進程的pid。只是包裝你的主要功能是這樣的:
import os
try:
with open("/tmp/myproc.pid") as pidfile:
pidfile.write(str(os.getpid()))
main()
finally:
os.remove("/tmp/myproc.pid")
現在,只要你想監控過程中,你可以先檢查文件是否存在的PID看,如果確實如此,獲取進一步的進程的PID監控。這有利於獨立於cron的特定實現,如果您想編寫更多與本地程序進行交互的程序,將來會更輕鬆。
相關問題
- 1. Python Apscheduler - 動態調度作業(嵌套)
- 2. 使用python腳本調度sidekiq作業
- 3. APScheduler如何在調度程序外添加作業?
- 4. Apscheduler多次執行作業
- 5. APScheduler - 作業未執行
- 6. 用於作業調度的Python庫,ssh
- 7. 調度作業
- 8. 作業調度不調用
- 9. 預定作業函數在Python的APScheduler庫中被多次調用
- 10. APScheduler運行作業達一特定量
- 11. 調度QGIS處理作業
- 12. SOS作業調度
- 13. Dataprep - 調度作業
- 14. WebLogic作業調度
- 15. 使用Selenium IDE作業調度
- 16. 使用Quartz動態調度作業
- 17. 使用heroku調度作業節點js
- 18. 使用Quartz.NET調度Cron作業
- 19. Quartz.net作業調度
- 20. APScheduler如何保存數據庫中的作業? (Python)
- 21. APScheduler python崩潰當試圖從jobstore獲得作業
- 22. Python,Apscheduler問題 - 作業運行兩次而不是一次
- 23. 如何使用python執行作業調度算法?
- 24. 使用Firebase作業調度程序計劃重複作業
- 25. 在apscheduler中使用不同的virtualenv作業
- 26. 如何使用uwsgi + flask_apscheduler通過請求向apscheduler添加作業
- 27. APScheduler(提前Python的調度器)導入錯誤:沒有模塊名爲調度
- 28. Python Pandas - apscheduler -
- 29. 如何使Python apscheduler背景
- 30. SQL替代作業調度