Alfrescoを起動する方法、現状がよろしくなかった。
/etc/init.d/alfrescoに定義を書いて、root権限で動作させている。
変えましょう…
initスクリプト から systemd unit に移行していく…
■サービスを止める
今までの手順だとこちら。
$ 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 systemctl daemon-reload $ sudo systemctl start alfresco.service $ systemctl status alfresco.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 で何かするより簡単!?
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他