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 官网
- 停止旧版本
kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
- 拉取新版本
npm i -g tkserver@latest
- 启动新版本
nohup tkserver >> tkserver.log 2>&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
- 停止旧版本
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