Linux定時迴圈執行python指令碼

來源:互聯網
上載者:User

標籤:pen   環境   lan   https   and   ref   bubuko   titan   9.png   

本文主要介紹在linux環境下,定時迴圈執行python指令碼的兩種方法。

 

方法一: nohup

vim time.py

  1 import time  2 while(True):  3     #time.sleep(1)  4     with open(‘time.log‘, ‘a+‘) as logfile:  5         logfile.write(‘Hello, World!\n‘)  6     time.sleep(1)  7     #break

在終端運行如下命令

nohup python time.py &

功能:實現了每秒將 "Hello, World!" 字串,寫入目前的目錄下的 time.log 檔案中。

原理:利用 python 的無限迴圈 while(True) ,並使用 time.sleep() 方法設定相應的秒數時停,最後通過 nohup 和 & 命令將指令碼掛在後台不掛斷的運行。

nohup command &:在後台運行 command,原程式的標準輸出和錯誤重新導向到目前的目錄下的 nohup.out 檔案中。如果目前的目錄的 nohup.out 檔案不可寫,輸出重新導向到 $HOME/nohup.out 檔案中。

查看:通過 tail -f time.log 在當前終端追蹤顯示 time.log 檔案,可用 Ctrl+c 中斷顯示。

中斷:通過 jobs 命令查看當前後台中啟動並執行任務,再使用 fg %n 將第n項掛到前台,最後用 Ctrl+c 中斷任務。

或者通過 ps aux | grep python 命令查看 python 進程,找到掛起的指令碼的 PID ,再使用 kill -9 PID 中斷掛起的指令碼。

拓展:nohup和&後台運行,進程查看及終止、Linux的nohup命令的用法

 

方法二: cron

vim time.py

  1 with open(‘/home/titanxp/test/time.log‘, ‘a+‘) as logfile:  2     logfile.write(‘Hello, World!\n‘)

在終端中使用 crontab -e 命令建立如下任務

*/1 * * * * /usr/bin/python /home/titanxp/test/time.py

功能:實現了每分鐘將 "Hello, World!" 字串,寫入指定目錄下的 time.log 檔案中。

原理:通過 crontab -e 命令建立週期性任務。要注意的是,指令碼中和指令碼路徑需要寫全路徑。

crontab 格式:minute hour day-of-month month-of-year day-of-week commands

查看:通過 tail -f /var/log/cron.log 命令查看 cron 日誌,可看到任務是否在執行。

中斷:通過 crontab -e 開啟進行任務編輯,只需刪除或注釋(#)定時任務即可中斷。

拓展:crontab命令、Linux定時執行指令碼

 

總結

方法一運用 Python 的 time 庫實現簡單的定時迴圈執行指令碼,可適用變數需累加的情況。

方法二結合 cron 命令可實現複雜的定時迴圈迴圈執行指令碼。

上述表述可能不到位,歡迎交流討論。

Linux定時迴圈執行python指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.