1. 監控 管理 Twikoo#
參考文章#
參考文章:
https://blog.csdn.net/cyt0906/article/details/107344361
https://www.cnblogs.com/loveCrane/p/15954893.html
yum install epel-release #安裝yum源 yum install -y supervisor supervisord -c /etc/supervisord.conf
cat /etc/supervisord.d/test.conf #項目名 [program:blog] #腳本目錄 directory=/opt/bin #腳本執行命令 command=/usr/bin/python /opt/bin/test.py #監控啟動的時候是否隨著同時啟動,默認True autostart=true #當程序exit的時候,這個program不會自動重啟,默認unexpected,設置子進程掛掉後自動重啟的情況,有三個選項,false,unexpected和true。如果為false的時候,無論什麼情況下,都不會被重新啟動,如果為unexpected,只有當進程的退出碼不在下面的exitcodes裡面定義的 autorestart=false #這個選項是子進程啟動多少秒之後,此時狀態如果是running,則我們認為啟動成功了。默認值為1 startsecs=1 #腳本運行的用戶身份 user = test #日誌輸出 stderr_logfile=/tmp/blog_stderr.log stdout_logfile=/tmp/blog_stdout.log #把stderr重定向到stdout,默認 false redirect_stderr = true #stdout日誌文件大小,默認 50MB stdout_logfile_maxbytes = 20MB #stdout日誌文件備份數 stdout_logfile_backups = 20
supervisorctl status //查看所有進程的狀態 supervisorctl stop es //停止es supervisorctl start es //啟動es supervisorctl restart //重啟es supervisorctl update //配置文件修改後使用該命令加載新的配置 supervisorctl reload //重新啟動配置中的所有程序
個人範例#
# 監控主配置文件
$ cat /etc/supervisord.conf
...
[include]
files = supervisord.d/*.ini
files = /root/sh_file/supervisord.d/*.ini
$ ls /root/sh_file/supervisord.d/
tkserver.ini
# twikoo服務 配置
$ cat /root/sh_file/supervisord.d/tkserver.ini
#項目名
[program:tkserver]
#腳本目錄
directory=/root/sh_file/twikoo
#腳本執行命令
command=/bin/bash /root/sh_file/twikoo/tkserver.sh
#監控啟動的時候是否隨著同時啟動,默認True
autostart=true
#當程序exit的時候,這個program不會自動重啟,默認unexpected,設置子進程掛掉後自動重啟的情況,有三個選項,false,unexpected和true。如果為false的時候,無論什麼情況下,都不會被重新啟動,如果為unexpected,只有當進程的退出碼不在下面的exitcodes裡面定義的
autorestart=false
#這個選項是子進程啟動多少秒之後,此時狀態如果是running,則我們認為啟動成功了。默認值為1
startsecs=1
#腳本運行的用戶身份
user = root
#日誌輸出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#把stderr重定向到stdout,默認 false
redirect_stderr = true
#stdout日誌文件大小,默認 50MB
stdout_logfile_maxbytes = 20MB
#stdout日誌文件備份數
stdout_logfile_backups = 20
# 運行twikoo的腳本
$ cat /root/sh_file/twikoo/tkserver.sh
#!/bin/bash
tkserver
# 啟動supervisord
$ supervisord -c /etc/supervisord.conf
$ supervisorctl status
# 相關命令
# 安裝 監控
yum install epel-release #安裝yum源
yum install -y supervisor
# 啟動 監控
$ supervisord -c /etc/supervisord.conf
# 監控 命令
supervisorctl status # 查看所有進程的狀態
supervisorctl stop tkserver # 停止tkserver
supervisorctl start tkserver # 啟動tkserver
supervisorctl restart tkserver # 重啟tkserver
supervisorctl update # 配置文件修改後使用該命令加載新的配置
supervisorctl reload # 重新啟動配置中的所有程序
# 注:把es換成all可以管理配置中的所有進程。直接輸入supervisorctl進入supervisorctl的shell交互界面,此時上面的命令不帶supervisorctl可直接使用。
2. Twikoo 版本升級(私有部署)#
前言#
烏龍事件,原本以為自己的 twikoo 版本過低,打算升級解決。後來發現是 butterfly 內置的 twikoo js 版本低,換個 js 就行。
主題配置文件 _config.butterfly.yml 新增 twikoo cdn
CDN:
option:
twikoo: https://npm.elemecdn.com/twikoo@1.6.7/dist/twikoo.all.min.js
參考文章#
參考自:twikoo 官網
- 停止舊版本
kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
- 拉取新版本
npm i -g tkserver@latest
- 啟動新版本
nohup tkserver >> tkserver.log 2>&1 &
個人範例#
個人步驟記錄
- 檢查是否異常
# 發現 監控 未執行,啟動程序
$ supervisorctl status tkserver
unix:///run/supervisor/supervisor.sock refused connection
$ supervisord -c /etc/supervisord.conf
Unlinking stale socket /run/supervisor/supervisor.sock
$ supervisorctl status tkserver
tkserver RUNNING pid 3268176, uptime 0:00:03
- 停止舊版本
supervisorctl stop tkserver
&&kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
# 停止 twikoo 進程
$ supervisorctl stop tkserver
tkserver: ERROR (not running)
$ supervisorctl status tkserver
tkserver EXITED Nov 06 07:00 PM
$ ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}'
1618196
1618197
# 停止舊版本
$ kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
$ ps aux |grep twikoo
- 拉取新版本
npm i -g tkserver@latest
- 啟動新版本
supervisorctl start tkserver
# 拉取新版本
$ pwd
/root/sh_file/twikoo
$ npm i -g tkserver@latest
# 啟動新版本
$ supervisorctl start tkserver
tkserver: started
$ ps aux |grep twikoo
root 3308516 0.0 0.1 16956 2892 ? S 19:06 0:00 /bin/bash /root/sh_file/twikoo/tkserver.sh