[英]How do I generate upstart and monit configuration files using a common spec or meta-configuration?
我正在使用grunt將節點Web應用程序部署為upstart服務,並使用monit監視它。 然而:
.override
的方法(ala upstart .override
文件) 這意味着我正在尋找一個可以用來生成uptstart .conf和monit conf.d / files的grunt插件或其他工具。 你能幫我找一個(或建議一個更好的方式來運行我的節點網絡應用程序)?
說實話,upstart和monit文件的下划線模板可能已經足夠了,如果沒有現成的解決方案,那么我將把它包裝成一個grunt插件,但這感覺就像其他人必須要解決的問題也遇到過這樣的情況,所以我想有一個解決方案,我找不到它。
更詳細一點來說明這三個問題。 我的新貴conf文件看起來像這樣:
setuid node
setgid node
# ...
script
mkdir -p /home/node/.my-app
echo $$ > /home/node/.my-app/upstart.pid
/usr/local/bin/node /var/node/my-app/server.js >> /var/node/my-app/logs/console.log 2>&1
end script
# ...
我的monit配置如下所示:
check process node with pidfile /home/node/.my-app/upstart.pid
start program = "/sbin/start my-app" with timeout 60 seconds
stop program = "/sbin/stop my-app"
if failed host localhost port 17394 protocol http
and request "/monit.html"
then restart
if 3 restarts within 5 cycles then timeout
如您所見,PID文件路徑和配置目錄在兩者之間重復(問題1),我很樂意參數化monit文件中的主機,端口和請求URL(問題3)。
對於問題2(在upstart的env
節中沒有變量擴展, 這里的錯誤報告),有一些解決方法適用於*腳本塊中使用的變量,這些變量被解釋為bash腳本,但它們似乎在conf中不起作用文件本身。 我認為這使得無法指定應用程序應在配置文件中運行的用戶ID?
我剛才提到的那些技巧:
...或建議更好地運行我的節點Web應用程序
請改用Unitech的PM2 。
我使用PM2運行所有節點應用程序。 它工作正常,易於配置。 它具有自動生成啟動腳本的內置功能。 它為您提供記錄,監控和易於維護。
安裝
npm install -g pm2
啟動應用
pm2 start app.js
顯示運行的應用
pm2 list
制作一個啟動腳本
pm2 startup [ubuntu|centos|systemd]
有關其github頁面自述文件的更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.