hotch-potch, Note to self

いろいろ作業記録

Visualixirの導入とsystemdで自動起動

1.はじめに

Visualixirをsystemdによる自動起動に対応させます。

GitHub - koudelka/visualixir: A process/message visualizer for BEAM nodes.💪👁

実行環境

Ubuntu 18.04LTSです。

$ uname -a
Linux smsv3 5.3.0-51-generic #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

2.インストール

npm

$ sudo apt install npm

Visualixir

$ mkdir ~/gitwork/elixir/
$ cd ~/gitwork/elixir/
$ https://github.com/koudelka/visualixir.git
$ cd visualixir
$ mix deps.get && mix compile && cd assets && npm install && cd -

動作チェック

$ elixir --sname visualixir -S mix phx.server
[Ctrl-\]で終了

ブラウザでhttp://localhost:4000/を開くとこんな感じで見えます。 f:id:hotch-potch:20200511102731p:plain

3.sytemdの設定

serviceファイル

$ touch visualizer.service
$ nano visualizer.service
visualizer.service

ここでは、インストールディレクトリを/home/ubuntu/gitwork/elixir/visualixirとしています。

[Unit]
Description=Visualixir
After=local-fs.target
ConditionPathExists=/home/ubuntu/gitwork/elixir/visualixir

[Service]
WorkingDirectory=/home/ubuntu/gitwork/elixir/visualixir
ExecStart=/usr/bin/elixir --sname visualixir -S mix phx.server
ExecStop=/bin/kill -QUIT ${MAINPID}
ExecReload=/bin/kill -HUP ${MAINPID}
Restart=always
StartLimitInterval=60
StartLimitBurst=3
KillMode=mixed
Type=simple
User=kenkyu
Group=kenkyu

[Install]
WantedBy=multi-user.target

systemdに登録

# 設定をコピー(シンボリックリンク)
$ sudo ln -s /home/kenkyu/gitwork/elixir/visualixir/visualizer.service /etc/systemd/system
#設定の再読込
$ sudo systemctl daemon-reload
#有効化
$ sudo systemctl enable visualizer.service 
#起動
$ sudo systemctl start visualizer.service 
#状態確認
$ systemctl status visualizer.service 
● visualizer.service - Visualixir
   Loaded: loaded (/home/ubuntu/gitwork/elixir/visualixir/visualizer.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-09 12:24:31 JST; 1 days ago
 Main PID: 22918 (beam.smp)
    Tasks: 43 (limit: 4662)
   CGroup: /system.slice/visualizer.service
           ├─22918 /usr/lib/erlang/erts-10.7.1/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /home/ubuntu-- -pa /usr/lib/elixir/bin/../lib/eex/eb
           ├─22955 erl_child_setup 1024
           ├─22984 /usr/bin/node node_modules/brunch/bin/brunch watch --stdin
           ├─22991 /usr/bin/node /home/ubuntu/gitwork/elixir/visualixir/assets/node_modules/brunch/lib/run-cli.js watch --stdin
           ├─23007 inet_gethost 4
           └─23008 inet_gethost 4

4.参考資料