UnityとゲームAIと将棋

Unity、Pythonを中心にゲーム開発やゲームAI開発の技術メモ等、たまに将棋も

Botを常時起動させておくためのservice, plistファイルを置く場所について

SlackBotやDiscordBotを作成する場合、サーバー上で常に起動させておきたいことが多いと思います。 そんな時に使うservice, plist ファイルの置き場所をよく忘れてしまうので、メモしておきます。

  • Linuxの場合 → /etc/systemd/system/
  • Macの場合 → /Library/LaunchDaemons/

ここで注意しておきたいのがservice, plistファイルが置かれている場所が複数あるということです。

例えばLinuxの場合

  • /usr/lib/systemd/system/ → パッケージ管理のサービスファイルが配置される場所
  • /etc/systemd/system/ → システム管理者がサービスファイルを配置する場所

という違いがあり、原則 /etc/systemd/system/ 配下に自作サービスファイルを置きます。

また、Macの場合

  • ~/Library/LaunchAgents/ → ユーザーごとに設定できるエージェント
  • /Library/LaunchAgents/ → システム管理者が設定できるエージェント
  • /Library/LaunchDaemons/ → システム全体に共通で設定されるデーモン

という違いがあり、エージェントは設定者がログインしていないと動かないのに対し、デーモンはログインなしでも動き続けます。

誰もログインしていない時でも動かしておきたいBotなどは /Library/LaunchDaemons/ 以下に配置しておくのがよいかと思います。