概要

Cantaloupe Image Serverは以下のコマンドで実行できます。

java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar

しかしこの方法では、ssh接続が切れた場合など、Cantaloupeサーバが止まってしまいます。

そこで、サービスとして実行する方法を紹介します。

方法

  1. サービスファイルの作成 : /etc/systemd/system/ディレクトリにサービスファイル(例えば、cantaloupe.service)をsudo権限で作成します。
[Unit]
Description=Cantaloupe Image Server

[Service]
User=ubuntu
# 以下のパスは適宜修正してください
WorkingDirectory=/home/ubuntu/cantaloupe-5.0.5
ExecStart=/usr/bin/java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

このファイルでは、ExecStartに実行するJavaコマンドを指定します。また、UserWorkingDirectoryは適切に設定する必要があります。

  1. サービスのリロード : 変更を適用するために、次のコマンドでsystemdをリロードします。
sudo systemctl daemon-reload
  1. サービスの開始 : 以下のコマンドでサービスを開始します。
sudo systemctl start cantaloupe
  1. サービスの有効化 : システム起動時にサービスが自動的に起動するようにするには、以下のコマンドを実行します。
sudo systemctl enable cantaloupe
  1. サービスの状態確認 : サービスの状態を確認するには、次のコマンドを使用します。
sudo systemctl status cantaloupe

注意: この例では、Javaのパスやcantaloupeのインストールパスは適宜修正する必要があります。また、Userはcantaloupeを実行するユーザーに置き換えてください。サービスファイルの詳細設定については、systemdのドキュメントを参照してください。

まとめ

以下のようにサービスとして起動していることを確認できます。参考になりましたら幸いです。

sudo systemctl status cantaloupe
● cantaloupe.service - Cantaloupe Image Server
     Loaded: loaded (/etc/systemd/system/cantaloupe.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-11-16 03:52:24 UTC; 6min ago
   Main PID: 33204 (java)
      Tasks: 31 (limit: 4667)
     Memory: 116.2M
        CPU: 4.408s
     CGroup: /system.slice/cantaloupe.service
             └─33204 /usr/bin/java -Dcantaloupe.config=cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.5.jar