簡體   English   中英

如何在python中識別進程處於凍結狀態?

[英]how to identify process is in frozen state in python?

如何在python中識別進程處於凍結狀態

我每半夜都在服務器上運行 python 文件,有時它會進入凍結狀態。 這是在 5 或 6 天后發生的嗎?

Python 腳本在運行過程中不會占用太多內存或負載,如果發布 120 個文檔,它需要 4 小時。

以下步驟:

  1. 運行 Python 腳本 custom.py
  2. 1 小時后,當沒有相同的腳本在運行時,再次運行相同的 python 腳本。

如果腳本是以前的腳本仍在系統中,那么相同的腳本將不會終止。

但是正在運行的腳本進入凍結或僵屍狀態的進程,那么下次腳本將不會運行,因為滲透腳本仍在系統中。

如果您希望腳本因超時而被終止並且您在 UNIX 上,則可以使用 SIGALRM: Timeout on a function call

如果要阻止啟動同一腳本的多個副本,有多種解決方案。 最簡單的就是ps aux | grep ps aux | grep 如果這還不夠,您可以使用 filelock 包https://pypi.python.org/pypi/filelock/但根據我的經驗,它仍然不穩定。 最好的解決方案是使用 sys-v ipc 信號量http://semanchuk.com/philip/sysv_ipc/ 一旦進程終止,您可以設置undo標志以刪除信號量鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM