Alfrescoを起動する方法、現状がよろしくなかった。
/etc/init.d/alfrescoに定義を書いて、root権限で動作させている。
変えましょう…
■サービスを止める
今までの手順だとこちら。
$ sudo service alfresco stop
※終了に猛烈に時間がかかる(5分、CPU使用率は高くならない)ことがあったが、原因を突き止められずにここまできた。
サービスの登録状況は sysv-rc-conf で見る。
$ sysv-rc-conf --list
acpid 2:on 3:on 4:on 5:on
alfresco 0:off 1:off 2:on 3:on 4:on 5:on 6:off
alsa-utils 0:off 1:off 6:off S:on
…
という具合。
サービスを削除する。
$ sudo update-rc.d alfresco disable ← これは無効化。やらなくていいかも。
$ sudo update-rc.d alfresco remove ← これで /etc/rc?.d からシンボリックリンクが消える
$ sudo rm /etc/init.d/alfresco ← 起動スクリプトを削除
$ sysv-rc-conf --list
acpid 2:on 3:on 4:on 5:on
alsa-utils 0:off 1:off 6:off S:on
きれいに消えた。
■起動ユーザーを作る
ユーザー alfresco を作って、Alfresco関連ファイルの持ち主を alfresco に変える。
$ sudo useradd --system --user-group alfresco
$ sudo chown -R alfresco:alfresco /usr/share/alfresco/
■起動用の設定ファイルを作る
このあたりを参考に。
https://gist.github.com/fmaul/b05d9b8d8b5ff8ff0a0657f2c25d7d8d
http://alfrescoblog.magenta.dk/content/creating-systemd-service-alfresco-installation
/lib/systemd/system/alfresco.service
[Unit]
Description=Alfresco Content Service
After=syslog.target network.target mysql.service
[Service]
Type=forking
ExecStart=/usr/share/alfresco/alfresco.sh start
ExecReload=/usr/share/alfresco.sh restart
ExecStop=/usr/share/alfresco/alfresco.sh stop
User=alfresco
PIDFile=/usr/share/alfresco/tomcat/temp/catalina.pid
[Install]
WantedBy=multi-user.target
rootでインストールしたので、スクリプトに若干の修正が必要。
/usr/share/alfresco/alfresco.sh
#!/bin/sh
echo "TRACE : 101"
# Allow only root execution
#if [ `id|sed -e s/uid=//g -e s/\(.*//g` -ne 0 ]; then
# echo "This script requires root privileges"
# exit 1
#fi
echo "TRACE : 102"
※コメントアウトする
■サービスとして登録
まずは起動を試す。
$ sudo sudo systemctl daemon-reload
$ sudo systemctl start mattermost.service
$ systemctl status mattermost.service
● alfresco.service - Alfresco Content Service
Loaded: loaded (/lib/systemd/system/alfresco.service; enabled; vendor preset: enabled)
Active: active (running) since 土 2018-04-14 11:08:41 JST; 10s ago
Process: 6033 ExecStart=/usr/share/alfresco/alfresco.sh start (code=exited, status=0/SUCCESS)
…
これで起動が確認できたらOKかな。
サービスとして登録。
$ sudo systemctl enable alfresco.service
これで移行ができる。
も、もしかして init.d で何かするより簡単!?