Teamcity はサービスとして実行すると起動しませんが、実際のコマンドは正常に動作します

Teamcity はサービスとして実行すると起動しませんが、実際のコマンドは正常に動作します

TeamCity をホーム サーバーとしてセットアップしようとしていますが、サービスを実行できないようです。これは Ubuntu 16.04 上です。

私は指示に従いましたここまでデータベースのインストールと構成部分です。(ただし、/opt/jetbrains/Teamcity ではなく /opt/Teamcity を使用しています)

サービスを実行しようとすると、次のメッセージが表示されます

sudo service teamcity start 
Job for teamcity.service failed because the control process exited with error code. See "systemctl status teamcity.service" and "journalctl -xe" for details.

しかし、スクリプト内で実際のコマンドを実行すると

sudo start-stop-daemon --start -c teamcity  --exec  /opt/TeamCity/bin/runAll.sh start

問題なく動作します。何かアイデアはありますか?

編集

出力は次のようになりますjournalctl -xe

Oct 13 23:15:59 Home-Server sudo[8224]:     ryan : TTY=pts/8 ; PWD=/opt/TeamCity/bin ; USER=root ; COMMAND=/usr/sbin/service teamcity start
Oct 13 23:15:59 Home-Server sudo[8224]: pam_unix(sudo:session): session opened for user root by ryan(uid=0)
Oct 13 23:15:59 Home-Server systemd[1]: Starting teamcity.service...
-- Subject: Unit teamcity.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit teamcity.service has begun starting up.
Oct 13 23:15:59 Home-Server systemd[8256]: teamcity.service: Failed at step EXEC spawning /etc/init.d/teamcity: Exec format error
-- Subject: Process /etc/init.d/teamcity could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The process /etc/init.d/teamcity could not be executed and failed.
-- 
-- The error number returned by this process is 8.
Oct 13 23:15:59 Home-Server systemd[1]: teamcity.service: Control process exited, code=exited status=203
Oct 13 23:15:59 Home-Server systemd[1]: Failed to start teamcity.service.
-- Subject: Unit teamcity.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit teamcity.service has failed.
-- 
-- The result is failed.
Oct 13 23:15:59 Home-Server systemd[1]: teamcity.service: Unit entered failed state.
Oct 13 23:15:59 Home-Server systemd[1]: teamcity.service: Failed with result 'exit-code'.
Oct 13 23:15:59 Home-Server sudo[8224]: pam_unix(sudo:session): session closed for user root

答え1

10月13日 23:15:59 ホームサーバー systemd[8256]: teamcity.service: ステップEXECで失敗しました /etc/init.d/teamcityの生成: Exec形式エラー
-- 件名: プロセス /etc/init.d/teamcity を実行できませんでした

… まさにこれが問題の原因です。ファイルは実行可能なスクリプトではありません。また、rcDebian ポリシーで古い van Smoorenburg スクリプトに規定されている正しい形式でもありません。van Smoorenburg スクリプト用の古い RedHat/SuSE ヘッダーさえ欠けておりrc、何年も前に Debian で必須となった LSB ヘッダーは言うまでもありません。

しかし、それを修正するのも時間の無駄です。破棄してください。systemd サービス ユニットを使用してください。

あなたは、2回Ubuntu では、一度は upstart に、その後は systemd に置き換えられました。

2016年現在、systemdへの移行に関する最初のルールが適用されます。ただし、過去数年間に多くの人々が行った(例えば、ベン・ホワイトヘッドそしてこの無名の人) は、systemd House of Horror の別の候補を作成するように依頼します。 しないでくださいシェル スクリプトで下手に書かれた Poor Man's Dæmon Supervisor を systemd ユニット内にラップします。

[ユニット]
説明=TeamCity
ドキュメント=https://unix.stackexchange.com/a/316369/5132

[サービス]
タイプ=シンプル
ユーザー=teamcity
環境=TEAMCITY_DATA_PATH=/opt/jetbrains/TeamCity/.BuildServer
環境=TEAMCITY_SERVER_OPTS=-Djava.awt.headless=true
ExecStart=/opt/jetbrains/TeamCity/bin/runAll.sh 実行

[インストール]
WantedBy=マルチユーザー.ターゲット

参考文献

関連情報