mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

01_其他-監督者管理進程-Twikoo版本升級

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 官網

  1. 停止舊版本 kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
  2. 拉取新版本 npm i -g tkserver@latest
  3. 啟動新版本 nohup tkserver >> tkserver.log 2>&1 &

個人範例#

個人步驟記錄

  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

  1. 停止舊版本 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

  1. 拉取新版本 npm i -g tkserver@latest
  2. 啟動新版本 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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。