Ubuntu

Ubuntu18.04 サービスの起動を遅らせる

スキャナで文書を取り込んだら、PDFにしてAlfrescoに登録する機能を実装できた。
さらに、スキャナ側で「OCR」を選択したら、透明テキストをPDFに貼り付ける機能も実装できた。

こうなってくるとAlfrescoの利用頻度はかなり上昇し、検索機能が重要になってくるが、なぜか検索できない…あれ?検索サービスが起動してないぞ?



広告


どうも、検索サービスはAlfrescoが起動していないと起動に失敗するらしい。
コマンドラインで検索サービスを立ち上げるとすぐに動作し始めるので、起動タイミングをコントロールする必要があるらしい。

最初のうちは動かしているサービスは多くなかったので良かったが、今は、まぁまぁ増えてきているのでこんなことが起きているのだろう。

本来は、Tomcatが起動し、Alfrescoが起動して動作可能になったところでサービスを起動するべき。
だけど、現在はTomcatの起動を待つのみ。

Alfrescoが起動していることを確認する手段が見つからないので、サービスの起動前に待ち時間を設定。
stackoverflow / How to ensure that there is a delay before a service is started in systemd?

/lib/systemd/system/alfresco-search.service

[Unit]
Description=Alfresco Search Service
Documentation=http://docs.alfresco.com/search-community/concepts/solr6-install-config.html
After=tomcat9.service

[Service]
Type=forking
WorkingDirectory=/usr/share/alfresco-search-services
ExecStartPre=/bin/sleep 60
ExecStart=/usr/share/alfresco-search-services/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
…

このやり方は暫定。

元記事でも、なんでこんなことするの?的なコメントがあるけれど、あるべき姿からはかけ離れているのは確か。
サービスを開始する前に無条件に60秒待つ形になるので、使い勝手も悪い。

でも、とりあえずは上手くいく。

後からここに「しかるべき待ち処理」を組み込むことにする。

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他