Mac Supervisor 管理进程
無論是在日常工作中還是平時玩代碼中,我總是離不開 Supervisor,其實很久之前我就寫過一篇文章:supervisord 部署 Flask,在里面,我仔細講解了如何在 Linux 環境下安裝并且配置 supervisord,并且如何部署應用,應該稍微懂點 Linux 的同學就可以按照指導自己在自己的環境下配置一份出來。但是,我日常更多的情況下是在 Mac 下工作的,雖然 Mac 下已經有很多強大的工具讓我的工作保持高效,但是,還是有一些東西是 Mac 上的軟件不能提供給我的,所以我還是依賴于 supervisor,所以,本文就將講述一下如何在 Mac 環境下配置一個好用的進程管理環境。
配置 Supervisor 自啟動
對于簡單的安裝配置 supervisor 就不多說了,還是簡單的使用 pip 即可安裝完畢,Supervisor 的自己配置也可以參照我之前的文章supervisord 部署 Flask進行。但是,這還不夠,因為我的電腦是要重啟的(是的,Mac 也要重啟,我大概半個月或者一個月重啟一次)。默認情況下,重啟之后 Supervisor 是不會起來的,所以我還得手動讓它起來,然后才能帶動我的其他軟件起來,這個不是很舒服,所以我希望能夠調整一下配置,讓 Supervisor 自啟動。
在搜索了一番之后,發現在 Mac 中有類似于 systemd 的應用,名為:Launchd,Launchd 是 OSX 用來初始化系統的重要進程,它是內核裝載成功之后在 OS 環境中啟動的第一個進程(好像很厲害)。而且,有意思的一點在于,在 Launchd 中注冊一個應用很簡單,只需要一個 plist 文件就可以了,通常這個 plist 文件是放在目錄 ~/Library/LaunchAgents 下的。所以我就依樣畫葫蘆寫了一個配置:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict><key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict><key>Label</key><string>io.liqiang.supervisord</string><key>ProgramArguments</key><array><string>/usr/local/bin/supervisord</string><string>-n</string><string>-c</string><string>/usr/local/share/supervisor/supervisord.conf</string></array><key>RunAtLoad</key><true/> </dict> </plist>測試進程
講道理到這里應該就是就完了。但是,為了讓大家有一個比較好的驗證體驗,所以我還加了一個 MongoDB 的配置,如果你有興趣的話,默認配置應該放在:/usr/local/share/supervisor/conf.d/mongod.conf 這個位置,配置內容為:
[program:mongod] command=/usr/local/mongodb/bin/mongod -f /data/conf/mongodb.yaml autostart=false autorestart=false startretries=3 redirect_stderr=true stdout_logfile = /var/log/supervisord_mongodb.log loglevel=info exitcodes=1,2依照這個配置完成之后,還是老樣子:
$ supervisorctl reread $ supervisorctl update $ supervisorctl start mongod這里應該 MongoDB 是起來了,現在連接上去試一下。
Reference
轉載于:https://www.cnblogs.com/makor/p/supervisor-in-mac.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Mac Supervisor 管理进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于ECMAScript6 的学习01-
- 下一篇: 常用时间序列分析方法