摘要:折騰原因之前都是遠程連接服務器,然后在命令行運行,一旦關閉遠程連接,爬蟲就會停止,很不爽,畢竟能讓一個爬蟲在服務器一直跑才是每個小白的夢想,所以開始研究如何使程序在后臺運行,剛開始看了,感覺不好用,又搜了搜,發現了這個進程管理程序。
折騰原因
之前都是遠程連接服務器,然后在命令行運行scrapy crawl spider,一旦關閉遠程連接,爬蟲就會停止,很不爽,畢竟能讓一個爬蟲在服務器一直跑才是每個小白的夢想= =,所以開始研究如何使程序在后臺運行,剛開始看了scrapyd,感覺不好用,又搜了搜,發現了supervisor這個python進程管理程序。
supervisor簡介Supervisor是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變為后臺daemon,并監控進程狀態,異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的進程當作supervisor的子進程來啟動,這樣只要在supervisor的配置文件中,把要管理的進程的可執行文件的路徑寫進去即可。也實現當子進程掛掉的時候,父進程可以準確獲取子進程掛掉的信息的,可以選擇是否自己啟動和報警。supervisor還提供了一個功能,可以為supervisord或者每個子進程,設置一個非root的user,這個user就可以管理它對應的進程。
安裝supervisor我的系統是centos7所以運行以下命令
# yum install supervisor
等待安裝完后,進入/ect目錄,主要看如下兩個文件。
supervisord.conf為主配置文件,可以打開看一下,不用更改,supervisord.d為子進程的配置文件夾,存放在這里的配置文件在程序啟動后會自動讀取該文件夾下的文件,我們進入這個文件夾,創建一個子進程文件,名為awesome.ini,內容如下:
[program:awesome] command = shell.py directory = /python/scrapy user = root startsecs = 3 redirect_stderr = true stdout_logfile_maxbytes = 50MB stdout_logfile_backups = 10 stdout_logfile = /log/app.log
說明:
command:為要后臺運行的shell命令
directory:指定command命令要執行的文件夾
user:執行命令的用戶
stdout_logfile:程序運行的日志,報錯可以在這里看。
創建好子進程文件后,運行如下命令解鎖程序:
# sudo unlink /run/supervisor.sock
再運行以下命令運行程序啟動爬蟲:
# supervisord
運行成功會有如下提示:
/usr/lib/python2.7/site-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including it s current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security. "Supervisord is running as root and it is searching "進程管理的相關命令
1) 查看所有子進程的狀態:
# supervisorctl status awesome RUNNING pid 2395, uptime 0:08:41
2)關閉、開啟指定的子進程:
# supervisorctl stop zhoujy awesome: stopped
3)關閉、開啟所有的子進程:
# supervisorctl stop all awesome: stopped # supervisorctl start all awesome: started總結
終于可以愉快的爬蟲了呢!OvO
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42760.html
摘要:阿里云安裝腳本安裝腳本兩個腳本可以任選其一,速度都非常不錯。推薦的加速器有和阿里云。阿里云不同平臺的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說明。上一篇文章網絡爬蟲實戰爬蟲框架的安裝下一篇文章網絡爬蟲實戰部署相關庫 上一篇文章:Python3網絡爬蟲實戰---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis下一篇文章:Python3網絡爬蟲實戰---...
摘要:環境準備任務時間前置環境部署在開始部署前,我們需要做一些前置準備。此時輸入并回車,應該可以看到類似下面這樣的輸出,說明一切正常。完成后,可以通過快捷鍵或命令行鍵入來退出,進入下一步。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由騰訊云實驗室發表于云+社區專欄 騰訊云提供了開發者實驗室教你搭建 PySpider 爬蟲服務,教程內容如下,用戶可以點擊開發者實驗室快速...
摘要:安裝配置文件內容如下守護進程,用這個的原因實在是因為太脆弱了,一看不住就掛了安裝配置導入默認配置鏈接管理設置管理進程啟動創建文件內容如下啟動查看如一切正常常用命令查看狀態重新載入重啟任務可以更新配置檢查日志爬蟲部署部署項目目錄 scrapyd 安裝: sudo pip install scrapyd 配置: #文件~/.scrapyd.conf #內容如下: [scrapyd] egg...
摘要:安裝配置文件內容如下守護進程,用這個的原因實在是因為太脆弱了,一看不住就掛了安裝配置導入默認配置鏈接管理設置管理進程啟動創建文件內容如下啟動查看如一切正常常用命令查看狀態重新載入重啟任務可以更新配置檢查日志爬蟲部署部署項目目錄 scrapyd 安裝: sudo pip install scrapyd 配置: #文件~/.scrapyd.conf #內容如下: [scrapyd] egg...
閱讀 2888·2021-11-15 11:39
閱讀 1513·2021-08-19 10:56
閱讀 1093·2019-08-30 14:12
閱讀 3731·2019-08-29 17:29
閱讀 719·2019-08-29 16:21
閱讀 3418·2019-08-26 12:22
閱讀 1515·2019-08-23 16:30
閱讀 1015·2019-08-23 15:25