Mac Supervisor 管理进程
無(wú)論是在日常工作中還是平時(shí)玩代碼中,我總是離不開(kāi) Supervisor,其實(shí)很久之前我就寫過(guò)一篇文章:supervisord 部署 Flask,在里面,我仔細(xì)講解了如何在 Linux 環(huán)境下安裝并且配置 supervisord,并且如何部署應(yīng)用,應(yīng)該稍微懂點(diǎn) Linux 的同學(xué)就可以按照指導(dǎo)自己在自己的環(huán)境下配置一份出來(lái)。但是,我日常更多的情況下是在 Mac 下工作的,雖然 Mac 下已經(jīng)有很多強(qiáng)大的工具讓我的工作保持高效,但是,還是有一些東西是 Mac 上的軟件不能提供給我的,所以我還是依賴于 supervisor,所以,本文就將講述一下如何在 Mac 環(huán)境下配置一個(gè)好用的進(jìn)程管理環(huán)境。
配置 Supervisor 自啟動(dòng)
對(duì)于簡(jiǎn)單的安裝配置 supervisor 就不多說(shuō)了,還是簡(jiǎn)單的使用 pip 即可安裝完畢,Supervisor 的自己配置也可以參照我之前的文章supervisord 部署 Flask進(jìn)行。但是,這還不夠,因?yàn)槲业碾娔X是要重啟的(是的,Mac 也要重啟,我大概半個(gè)月或者一個(gè)月重啟一次)。默認(rèn)情況下,重啟之后 Supervisor 是不會(huì)起來(lái)的,所以我還得手動(dòng)讓它起來(lái),然后才能帶動(dòng)我的其他軟件起來(lái),這個(gè)不是很舒服,所以我希望能夠調(diào)整一下配置,讓 Supervisor 自啟動(dòng)。
在搜索了一番之后,發(fā)現(xiàn)在 Mac 中有類似于 systemd 的應(yīng)用,名為:Launchd,Launchd 是 OSX 用來(lái)初始化系統(tǒng)的重要進(jìn)程,它是內(nèi)核裝載成功之后在 OS 環(huán)境中啟動(dòng)的第一個(gè)進(jìn)程(好像很厲害)。而且,有意思的一點(diǎn)在于,在 Launchd 中注冊(cè)一個(gè)應(yīng)用很簡(jiǎn)單,只需要一個(gè) plist 文件就可以了,通常這個(gè) plist 文件是放在目錄 ~/Library/LaunchAgents 下的。所以我就依樣畫葫蘆寫了一個(gè)配置:
<?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>測(cè)試進(jìn)程
講道理到這里應(yīng)該就是就完了。但是,為了讓大家有一個(gè)比較好的驗(yàn)證體驗(yàn),所以我還加了一個(gè) MongoDB 的配置,如果你有興趣的話,默認(rèn)配置應(yīng)該放在:/usr/local/share/supervisor/conf.d/mongod.conf 這個(gè)位置,配置內(nèi)容為:
[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依照這個(gè)配置完成之后,還是老樣子:
$ supervisorctl reread $ supervisorctl update $ supervisorctl start mongod這里應(yīng)該 MongoDB 是起來(lái)了,現(xiàn)在連接上去試一下。
Reference
轉(zhuǎn)載于:https://www.cnblogs.com/makor/p/supervisor-in-mac.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的Mac Supervisor 管理进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于ECMAScript6 的学习01-
- 下一篇: 常用时间序列分析方法