PX-W3PE4+Mirakurun+EPGStation
環境
ubuntu server 20.04.1
cpu:Celeron G5900
memory:8Gbyte
Dockerを使用するタイプは更新が早く再現性が悪くなってきましたDockerを使わず、個別にインストールをしました
これが一番再現性が良い感じがする(2021-3-31)
Node.js、PM2のインストール
------参考------
#npm自体はNode.jsをアンインストールすることでnpmも一緒にアンインストールされます
sudo apt-get remove --purge nodejs
#'.npm','.pm2'ホーム隠しディレクトリを削除する
sudo rm -f -r .npm
sudo rm -f -r .pm2
-------------
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install pm2 -g
sudo pm2 startup
Mirakurunのインストール
sudo npm install mirakurun -g --unsafe --production
sudo npm install arib-b25-stream-test -g --unsafe
Mirakurunの設定
#/usr/local/etc/mirakurun/ホルダーに入っている■tuners.yml チューナー設定
sudo EDITOR=nano mirakurun config tuners
#チューナ設定を表示,ダウンロード
sudo EDITOR=nano mirakurun config channels
#地デジ・BS設定ファイルを表示
#ダウンロード
sudo mirakurun restart
EPGStation準備
#Node.js, Mirakurun, FFmpeg/FFprobe, Python (2.7, v3.5, v3.6, or v3.7), GCC がインストール済みであることを確認する
node --version
curl -o - http://192.168.3.4:40772/api/version
ffmpeg -version
python3 --version
gcc --version
#node :v14.15.4
#mirakurun :"current":"3.5.0","latest":"3.5.0"
#ffmpeg :4.2.4-1
#python3 :3.8.5
#gcc :9.3.0
#FFmpeg/FFprobe についてデフォルトでは /usr/local/bin/ にインストールされていると想定しています
#調べるには(調べた結果:/usr/bin/)
#sudo find / -name 'ffmpeg'
#違う場所にインストールされている場合は ~/EPGStation/config/config.yml (lines 33)を修正してください
EPGStation のインストール
#Linux macOS 用 セットアップマニュアル
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation/
npm run all-install
#'npm'で赤い文字で'UNMET DEPENDENCY'が表示されれば規定のバージョンに入れ直す
npm install react@16.8.0 --save
npm install react-dom@16.8.0 --save
npm run build
設定ファイルの作成 編集
cd ~/EPGStaion
cp config/config.sample.yml config/config.yml
cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml
cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml
cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml
#config.ymlを編集する
nano config/config.yml
#FFmpeg,FFprobeのインストール場所調べる
#33行目/usr/local/bin/の箇所を/usr/bin/に訂正する
EPGstationを起動させる
sudo npm install pm2 -g
pm2 start dist/index.js --name "epgstation"
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
┤ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
│ 0 │epgstation│ fork │ 0 │ online │ 0% │ 40.1mb |
#'pm2 list'で確認する。statusにエラーが表示されればやり直し
#自動で起動させるために
pm2 startup
#メッセージが出るのでそのままコピペ
*[PM2] Init System found: systemd
*[PM2] To setup the Startup Script, copy/paste the following command:
*sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2
startup systemd -u kazu --hp /home/kazu
#貼り付け実行
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u kazu --hp /home/kazu
pm2 save
#PC再起動でEPGStationが再開されない場合はEPGStation自動起動が失敗しので確認してみる
cd EpgStation
pm2 list
#何も表示していなければ下記でEPGStationを再開してみる。これで動かなければ再インストールが必要かもしれない
pm2 start dist/index.js --name "epgstation"
#調子が悪くなってきたら
#自動起動した EPGStation を終了、再起動
pm2 stop epgstation
pm2 start dist/index.js --name "epgstation"
#npmを手動で起動する場合
npm start
#リモートで端末オープンして入力すると、端末を終了できなくなるので
nohup npm start &
#も、有りかも
ログが膨大になる
#一番膨大になるファイルは’/usr/local/var/log/mirakurun.stdout__xxxxxxxxxx’です#他のデレクトリも注意して見守りましょう
sudo ls -al /root/.pm2/logs/
ls -al /usr/local/var/log/
ls -al /home/kazu/EPGStation/logs/EPGUpdater/
ls -al /home/kazu/EPGStation/logs/Operator/
ls -al /home/kazu/EPGStation/logs/Service/
ls -al /home/kazu/.pm2/logs/
#サイズの大きなデレクトリを検索。大きいサイズから10件
sudo du -m /home/kazu/EPGStation/ | sort -n | tail -10
#findを使ってサイズも出力
sudo find / -name *.log -ls
参考まで他のサイトでよく見かけるのが下記の設定です
毎日ログを圧縮して1週間分保存する設定
sudo pm2 install pm2-logrotate
sudo nano /etc/logrotate.d/mirakurun
+++以下コピーして貼り付け+++
/etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
++++ここまで++++
もし設定をしたらmirakurunの再起動です
sudo mirakurun restart
参考でコピーをしてきたアンインストール方法
PM2に登録されているEPGStationを削除して、PM2の現在の状態を保存、PM2を停止、PM2の自動起動を停止、無効化、設定を削除、PM2の設定保存ディレクトリを削除する。
pm2 delete epgstation
pm2 save
pm2 kill
cd ..
sudo systemctl stop pm2-epgstation
sudo systemctl disable pm2-epgstation
sudo rm -f /etc/systemd/system/pm2-epgstation.service
rm -rf ~/.pm2
pm2パッケージを削除
cd EPGStation
killall node
package.jsonのある場所
rm -r node_modules
rm packge.lock.json
pm2パッケージを入れ直すか以下Epgstationまで削除
参考
cd ~
rm -rf ~/EPGStation
rm -rf ~/.node-gyp
rm -rf ~/.npm
rm -rf ~/.config
rm -f ~/.v8flags.*
Mirakurunのアンインストール
Mirakurunのアンインストールと、Mirakurunの設定、データベース、ログの削除を行う。
sudo npm uninstall mirakurun -g --unsafe
sudo rm -rf /usr/local/etc/mirakurun
sudo rm -rf /usr/local/var/db/mirakurun
sudo rm -f /usr/local/var/log/mirakurun.std*.log
PM2のアンインストール
PM2のアンインストールと、スーパーユーザのPM2自動起動設定の停止、無効化、設定の削除、PM2の設定保存ディレクトリの削除を行う。
sudo npm uninstall pm2 -g
sudo systemctl stop pm2-root
sudo systemctl disable pm2-root
sudo rm -f /etc/systemd/system/pm2-root.service
sudo rm -rf ~root/.pm2
Node.jsのアンインストール
npmの設定保存ディレクトリの削除と、Node.jsのアンインストール、関連パッケージのアンインストール、関連ディレクトリの削除を行う。
sudo rm -rf ~root/.npm
sudo rm -rf ~root/.config
sudo rm -f ~root/.v8flags.*
sudo apt-get remove --purge -y nodejs
sudo apt-get autoremove -y
sudo rm -rf /usr/lib/node_modules
NodeSourceリポジトリの設定削除、apt-key listで取得したキーの一覧からNodeSourceのキーだけを抽出、キーの削除を行う。
sudo rm -f /etc/apt/sources.list.d/nodesource.list
KEY=`sudo apt-key list | sed -n -e '/^pub/{N;s/.*\n *//;h};/^uid.*NodeSource/{g;p}'`
sudo apt-key del "$KEY"
test10
#ログファイルが何処にあるか調べてみました
/root/.pm2/pm2.log
/root/.pm2/logs/pm2-logrotate-error.log
/root/.pm2/logs/pm2-logrotate-out.log
/usr/local/var/log/mirakurun.stderr__xxxxxxxxxx.log
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/usr/local/var/log/mirakurun.stdout__xxxxxxxxxx
/home/kazu/EPGStation/logs/EPGUpdater/stream.log
/home/kazu/EPGStation/logs/EPGUpdater/system.log
/home/kazu/EPGStation/logs/EPGUpdater/access.log
/home/kazu/EPGStation/logs/Operator/stream.log
/home/kazu/EPGStation/logs/Operator/system.log
/home/kazu/EPGStation/logs/Operator/access.log
/home/kazu/EPGStation/logs/Service/encode.log
/home/kazu/EPGStation/logs/Service/stream.log
/home/kazu/EPGStation/logs/Service/system.log
/home/kazu/EPGStation/logs/Service/access.log
/home/kazu/.pm2/pm2.log
/home/kazu/.pm2/logs/epgstation-error.log
/home/kazu/.pm2/logs/epgstation-out.log