Skip to content
This repository has been archived by the owner on Aug 29, 2024. It is now read-only.

ams のアンインストール #13

Closed
h-takeyeah opened this issue Dec 28, 2022 · 1 comment
Closed

ams のアンインストール #13

h-takeyeah opened this issue Dec 28, 2022 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@h-takeyeah
Copy link

h-takeyeah commented Dec 28, 2022

ITS のラズパイから入退室管理システムを削除する方法についての文書が発掘されたのでそれを残すだけ

注意

  • すでに入退室管理システムは削除したと記憶しているので、存在意義ェではある。
  • bou-responder は boushi2 に置き換わっている。pm2 で管理している点は変わっていないはず。
@h-takeyeah
Copy link
Author

入退室管理システムの停止ならびに削除方法

この文書では入退室管理システムの停止方法ならびに削除方法について記載します
各々のリポジトリにはない情報なので注意してください。
オプションと書かれた節は必要ならば読んでください。

前提

この文書はITSで稼働中のラズパイについてのものです。
入退室管理システムは PM2 によってプロセスを管理されています。ですから基本的には pm2 のコマンドを使ってコントロールします。
pi ユーザでログインしていることを確認してください。

whoami

現在 pm2 によって管理されているアプリの一覧を確認してください。status 欄が active になっているものが現在稼働中のアプリです。ams-frontend、ams-backend、rdr-bridgeの3つ(室のラズパイはこれにbou-responderを加えた4つ)が稼働していると思います。

pm2 ls # list や status でも同様

ここでいう停止とは OS の起動後にアプリが自動起動するのを停止することを指します。ここでいう削除とはアプリを pm2 の管理対象から外すことを指します。

停止

3つのシステムが稼働していますが、全て停止するには次のコマンドを実行してください。個別に止めたい場合は all ではなく {各アプリの name} を指定してください(bou-responder の例: pm2 stop bou-responder)。なお {各アプリの name} は、前述の pm2 ls から確認できます。

pm2 stop all # pm2 が管理している全システムを一時停止pm2 save # 変更を保存する

削除

削除も停止と同様です。

pm2 delete all # 自動起動オフpm2 save # 変更を保存する

pm2 自体の停止

pm2 自体はデフォルトでは systemd のサービスとして起動します(systemd スタート -> pm2 スタート -> 入退室管理システムスタート の流れ)。今回もそうしています。入退室管理システムをこれ以上使用しない場合は pm2 自体も不要になるかと思いますので、以下の手順に沿って pm2 自体を systemd サービスから削除してください。

  1. コマンドの確認

    pm2 unstartup # systemd のサービスから外すためのコマンドが表示される

    systemd をいじるには root 権限が必要なので pm2 のサブコマンドとしては実行できません。確認、実行の手順を踏むのはそのためです。

  2. コマンドの実行
    1で表示されたコマンドを端末にコピペして実行する

【オプション】データベースの削除

入退室管理システムではデータベースとして MySQL を使用しています。ログを残す役目を果たしたらデータベースも削除してしまって良いと思います。

データベース名 ams
sudo mysql -uroot -p -e 'DROP DATABASE AMS;'
# パスワード入力を求められるので入れる(0000とかそんな感じだと思う)

ログを抜きたい場合は ams-frontend の CSV 書き出し機能を使うかバックアップ系のコマンド(mysqldump 等)やソフトを使ってください。

【オプション】ソースコードの削除

これで以降はシステムは起動しなくなりましたがソースコード等も削除したい場合は ams-project/ を削除してください。注意として ams-backend ディレクトリにあるconfig.yml というファイルには MySQL のユーザ名とパスワードが書いてあります。権限が不足している都合上、データベースを削除するような時には使えませんが、もしかしたら何かで使うかもしれないのでデータベースを削除するまでは、このファイルは残しておくことをおすすめします。

rm -rf /home/pi/ams-project # 全て削除

3つのシステムのソースコードは ams-project/ 以下にそれぞれ入っていますので個別に削除する場合は個別に削除してください。

rm -rf /home/pi/ams-project/bou-responder # bou-responder のみ削除

【オプション】削除手順には直接関係のない知識

どこかにメモったような気もするけれどどこにもメモってないような気もする小ネタを残しておきます。

pm2 の実体

「pm2 自体」という言い回しは実は正確ではありません。pm2 の実行ファイルは npm でグローバルにインストールされていますので、pm2コマンドが使えなくなるわけではないからです。あくまで OS 起動後に何かを自動起動させる機能(PM2 - Startup Script の内容)をオフにしただけです。pm2 をアンインストールするには「npm 削除 グローバル」などで検索してみてください。

pm2 の仕事

💡 各アプリはそれぞれの package.json に記載の npm start スクリプトを実行することで起動します。pm2 の仕事はコンピュータの起動後に、予め登録してある npm start スクリプトを自動的に実行することです。bou-responder は例外的に Python のスクリプトを実行するようになっています。pm2 の設定方法について記載したこちらのページ PM2 - Ecosystem File が参考になります。

pm2 の管理するアプリの単位

💡 pm2 では pm2 ls に出てくる idname でアプリを識別、管理しています。基本的には name で区別して問題ないと思います。

@h-takeyeah h-takeyeah added the documentation Improvements or additions to documentation label Dec 28, 2022
@h-takeyeah h-takeyeah pinned this issue Dec 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant