mycpen

Mycpen

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

01_Other-Supervisor管理进程-Twikoo版本升级

1. Supervisor 管理 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

#supervisor启动的时候是否随着同时启动,默认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        //重新启动配置中的所有程序

个人样例#

# supervisor主配置文件
$ 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

#supervisor启动的时候是否随着同时启动,默认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

# 相关命令

# 安装 supervisor
yum install epel-release  #安装yum源
yum install -y supervisor

# 启动 supervisor
$ supervisord -c /etc/supervisord.conf

# supervisor 命令
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. 检查是否异常
# 发现 supervisor 未执行,启动程序
$ 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

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.