目次
日常でよく、形態素解析したくなることがありますよね? そして、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