1. Supervisor 管理 Twikoo

参考文章

参考文章:

https://blog.csdn.net/cyt0906/article/details/107344361

https://www.cnblogs.com/loveCrane/p/15954893.html

1
2
3
4
5
yum install epel-release  #安装yum源
yum install -y supervisor

supervisord -c /etc/supervisord.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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

1
2
3
4
5
6
7
supervisorctl status        //查看所有进程的状态
supervisorctl stop es //停止es
supervisorctl start es //启动es
supervisorctl restart //重启es
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序

个人样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 相关命令

# 安装 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版本升级(私有部署)

更新 1.6.22

时间:2023-10-10,版本 1.6.22 <= 1.6.7

参考:twikoo.js.org

1.6.22 支持评论/访问量数据 json 导出了

官网步骤:

  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. 先备份,我的数据路径 /root/sh_file/twikoocp -r twikoo twikoo_bak

  2. 更新

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    supervisorctl status tkserver

    supervisorctl stop tkserver

    ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}'

    # 1. 停止旧版本
    kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')

    # 2. 拉取新版本
    npm i -g tkserver@latest

    # 3. 启动新版本
    # kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
    supervisorctl start tkserver

    rm -rf twikoo_bak # 删备份

  3. 更新 butterfly 前端资源,CDN.option.twikoo,www.staticfile.org 上查找

前言

乌龙事件,原本以为自己的 twikoo 版本过低,打算升级解决。后来发现是 butterfly 内置的 twikoo js 版本低,换个 js 就行。

主题配置文件 _config.butterfly.yml 新增 twikoo cdn

1
2
3
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. 检查是否异常

1
2
3
4
5
6
7
8
9
10
# 发现 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}')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 停止 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 拉取新版本
$ 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