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の3つのオプションがあります。falseの場合、どんな状況でも再起動されません。unexpectedの場合、プロセスの終了コードが以下のexitcodesに定義されていないときのみ再起動されます autorestart=false #このオプションは子プロセスが何秒後に起動するか、状態がrunningの場合、起動成功と見なされます。デフォルト値は1 startsecs=1 #スクリプト実行のユーザーID 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の3つのオプションがあります。falseの場合、どんな状況でも再起動されません。unexpectedの場合、プロセスの終了コードが以下のexitcodesに定義されていないときのみ再起動されます
autorestart=false
#このオプションは子プロセスが何秒後に起動するか、状態がrunningの場合、起動成功と見なされます。デフォルト値は1
startsecs=1
#スクリプト実行のユーザーID
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のシェルインタラクティブインターフェースに入ります。この時、上記のコマンドは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