我記筆記類在我的電腦上,並通過對Dropbox的公用文件夾共享這些註釋。當我在課堂上記筆記時,在生成PDF之前,我創建了大量不必要的文件(我在LaTeX中記錄筆記)。我不想用不必要的文件混淆我的Dropbox空間,而只想將PDF文件發佈到Dropbox。殺死包含腳本'time.sleep()`
爲了方便這一切,我成立了一個運行Python腳本(見下文)後,每類(一週)一個cronjob。有時,在我導出PDF之前,我在筆記中修復了一些東西,所以我留下了幾分鐘的時間,所以python腳本中有一堆sleep
s,等待生成PDF。我今天無意中手動運行了該腳本,並且需要幫助來阻止它。
import os
import subprocess
from sys import exit as crash
from datetime import date as dt
from time import sleep
def getToday():
answer = dt.strftime(dt.today(), "%b") + str(int(dt.strftime(dt.today(), "%d")))
return answer
def zipNotes(date):
today = getToday()
while 1:
if today not in os.listdir('.'):
with open("FuzzyLog", 'a') as logfile:
logfile.write("Sleeping\n")
sleep(60*5) # sleep 5 minutes
continue
if "Notes.pdf" not in os.listdir(today):
with open("FuzzyLog", 'a') as logfile:
logfile.write("pdf not exported. Sleeping\n")
sleep(60*5) # sleep 5 minutes
continue
subprocess.call("""zip Notes.zip */Notes.pdf""", shell=True)
crash(0)
zipNotes(getToday())
由於腳本沒有找到今天(我可以很容易地只創建一個虛擬文件,但是這不是一個「正確」的解決方案)所做的任何文件,它遍歷睡眠狀態無限。由於循環條件非常簡單,我不能指望進程在很長時間內處於活動狀態,以便「在行爲中捕獲它」以獲得其PID來殺死它。
ps aux | grep python
不顯示哪個PID在運行我想要殺死的python腳本,也不是ps -ax | grep python
或ps -e | grep python
。
沒有人有任何的想法,而它正在睡覺,我可以怎樣跟蹤python腳本?
我在Mac OSX 10.7.5(Lion)上,如果有問題
如果你要更新的腳本,使之更容易找到並殺死,爲什麼不更新,以使其能夠乾淨地關閉呢? – abarnert
@abarnert:我/可以/更新腳本(如何?),但現在,我被一個已經運行並且需要被殺死的腳本卡住了。我該如何去尋找和殺死這個腳本? – inspectorG4dget
那麼,對於這個一次性案例,只需創建它正在等待的虛擬文件即可。然後看看如何使未來不必要。 – abarnert