mursのColdFusionメモ

頭の中から抜け落ちていく情報をメモがわりに書き溜めていくブログです。

cfjetty on Linuxの自動起動

ColdFusion2023のリリース以来、久しぶりの投稿になってしまった。また、情報をまとめたら、忘れてしまう前にブログに残しておこう。

ということで、今回は、Linux環境でcfjettyを自動起動させる設定。 Linuxでcoldfusionの自動起動は用意されているんだけど、cfjettyはなぜか用意されていない(昔のCF11まではあったんだけど、systemdになってからなくなっている)。

無い物は作ればよいだけなんだけど、いつも忘れてしまうので、メモに残す。

まずは、ColdFusion 2023を CUI でインストールする。GUIモードでインストールすると、インストール途中の『システム init 上で ColdFusionを開始』の選択が出てこないからだ。 もし、LinuxGUI上でインストーラーを起動して、GUIモードで立ち上がったときは、一旦、インストールをキャンセルしたのち、コンソールモードで起動するように入力する。

コンソールモードで起動するには -i consoleを付ける
ColdFusion_2023_GUI_WWEJ_linux64.bin -i console

GUIモードで入れてしまった場合は、↓のFAQの記事を参考に、ColdFusion2023を自動起動するように設定すると良い。 cfassociates.samuraiz.co.jp

これで、/etc/systemd/system/ 内に cf2023.service ファイルが作成されて、サービスが登録されている。なので、このファイルを複製してcfjettyの起動を作ってしまおう。

  1. cf2023.service ファイルをコピーして、cfjetty2023.service という名前にする

  2. vi等でファイルを編集する
     Description=Adobe ColdFusion 2023 を Description=Adobe ColdFusion Jetty 2023 に
     ExecStartを ExecStart=/opt/ColdFusion2023/cfusion/jetty/cfjetty start に
     ExecStopを ExecStop=/opt/ColdFusion2023/cfusion/jetty/cfjetty stop に変更する

  3. ファイルを保存したら、systemdは定義ファイルを自動認識するので確認する
     systemctl list-unit-files --type=service | grep cf
      cf2023.service enabled enabled
      cfjetty2023.service disabled enabled

  4. あとは、サービスとして登録して、起動してみる(すでに起動している場合は、手動で止めて(/opt/ColdFusion2023/cfusion/jetty/cfjetty stop)から起動する)
     systemctl enable cfjetty2023
       Created symlink /etc/systemd/system/multi-user.target.wants/cfjetty2023.service → /etc/systemd/system/cfjetty2023.service.  systemctl start cfjetty2023

  5. ステータスを確認して、起動できていたらOK
     systemctl status cfjetty2023

  6. あとはOSをシャットダウンや再起動して、自動起動されることを確認する

cfjetty2023.service の記載例
[Unit]
Description=Adobe ColdFusion Jetty 2023
After=multi-user.target

[Service]
ExecStart=/opt/ColdFusion2023/cfusion/jetty/cfjetty start
ExecStop=/opt/ColdFusion2023/cfusion/jetty/cfjetty stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target