kagome-botのユーザーサービス化

Posted by johtani on Thursday, January 25, 2024

目次

日常でよく、形態素解析したくなることがありますよね? そして、Slackも日常的に立ち上がってますよね? ということは、Slackのボットとして常駐してもらえばできるのでは?

kagome-bot

知り合いがkagomeという形態素解析ライブラリを開発しています。 その知り合いが、ボットにもしてくれています(複数辞書対応してみたかったので、PR作って取り込んでもらいました)。

ただ、デプロイはしてなかったので、我が家にあるUbuntuのサーバーにデプロイして動かすことにしました。 ボットについては、上記のリポジトリを見てもらえればいいかなと。

とりあえず動けばいいや、ということで、適当なshell scriptにnohupで起動していたのですが、Ubuntuの更新後の再起動で毎回ログインしてスクリプトの実行はめんどくさいな?ということでググって調べてみました。

systemdでユーザーのサービスとして登録

参考ブログにある手順ほぼそのままでした。知見ありがたいです。

サービスの登録自体は、指定のディレクトリにファイルを作るのではなく、systemdコマンドをしようしました。

$ systemctl --user --force --full edit kagome

これで、参考ブログにあるようにkagome.serviceというファイルが~/.config/systemd/user/ディレクトリに作られます。 ファイルの内容などはほぼ参考ブログにある通りです。こんなかんじ。

[Unit]
Description=kagome bot

[Service]
ExecStart=/home/johtani/kagome-bot/start_kagomebot_service.sh
ExecStop=/bin/kill ${MAINPID}
Restart=always

[Install]
WantedBy=default.target

start_kagomebot_service.shの中で、kagome-botコマンドを実行しますが、こちらは絶対パスで記述しておきました。 サービス起動時のパスは~/のようなのですが、念のために。

あとは、次の手順でサービスを登録して開始します。

$ systemctl --user enable kagome
$ systemctl --user start kagome

ログを見るのはjournalctlコマンドです。

$ journalctl --user -u kagome

あとは、以下のコマンドを実行しないと、マシン再起動後にログインするまでサービスが起動しないので忘れないようにしましょう。 (忘れてログインしてみて起動してるじゃん?というコントみたいなことをしてしまいました)。

$ sudo loginctl enable-linger username

参考ブログ本当にありがたいですね。 備忘録のついでにブログにしておきます。

参考ブログ


comments powered by Disqus

See Also by Hugo


Related by prelims-cli