ColdFusion2023のリリース以来、久しぶりの投稿になってしまった。また、情報をまとめたら、忘れてしまう前にブログに残しておこう。
ということで、今回は、Linux環境でcfjettyを自動起動させる設定。 Linuxでcoldfusionの自動起動は用意されているんだけど、cfjettyはなぜか用意されていない(昔のCF11まではあったんだけど、systemdになってからなくなっている)。
無い物は作ればよいだけなんだけど、いつも忘れてしまうので、メモに残す。
まずは、ColdFusion 2023を CUI でインストールする。GUIモードでインストールすると、インストール途中の『システム init 上で ColdFusionを開始』の選択が出てこないからだ。 もし、LinuxのGUI上でインストーラーを起動して、GUIモードで立ち上がったときは、一旦、インストールをキャンセルしたのち、コンソールモードで起動するように入力する。
コンソールモードで起動するには -i consoleを付ける
ColdFusion_2023_GUI_WWEJ_linux64.bin -i console
GUIモードで入れてしまった場合は、↓のFAQの記事を参考に、ColdFusion2023を自動起動するように設定すると良い。 cfassociates.samuraiz.co.jp
これで、/etc/systemd/system/ 内に cf2023.service ファイルが作成されて、サービスが登録されている。なので、このファイルを複製してcfjettyの起動を作ってしまおう。
cf2023.service ファイルをコピーして、cfjetty2023.service という名前にする
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 に変更するファイルを保存したら、systemdは定義ファイルを自動認識するので確認する
systemctl list-unit-files --type=service | grep cf
cf2023.service enabled enabled
cfjetty2023.service disabled enabledあとは、サービスとして登録して、起動してみる(すでに起動している場合は、手動で止めて(/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ステータスを確認して、起動できていたらOK
systemctl status cfjetty2023
あとは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