SlackBotやDiscordBotを作成する場合、サーバー上で常に起動させておきたいことが多いと思います。 そんな時に使うservice, plist ファイルの置き場所をよく忘れてしまうので、メモしておきます。
ここで注意しておきたいのがservice, plistファイルが置かれている場所が複数あるということです。
例えばLinuxの場合
- /usr/lib/systemd/system/ → パッケージ管理のサービスファイルが配置される場所
- /etc/systemd/system/ → システム管理者がサービスファイルを配置する場所
という違いがあり、原則 /etc/systemd/system/ 配下に自作サービスファイルを置きます。
また、Macの場合
- ~/Library/LaunchAgents/ → ユーザーごとに設定できるエージェント
- /Library/LaunchAgents/ → システム管理者が設定できるエージェント
- /Library/LaunchDaemons/ → システム全体に共通で設定されるデーモン
という違いがあり、エージェントは設定者がログインしていないと動かないのに対し、デーモンはログインなしでも動き続けます。
誰もログインしていない時でも動かしておきたいBotなどは /Library/LaunchDaemons/ 以下に配置しておくのがよいかと思います。