
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 を実行できませんでした
… まさにこれが問題の原因です。ファイルは実行可能なスクリプトではありません。また、rc
Debian ポリシーで古い 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=マルチユーザー.ターゲット
参考文献
- https://unix.stackexchange.com/a/316168/5132
- https://askubuntu.com/a/626858/43344
- ジョナサン・デ・ボイン・ポラード(2015年)。 システム化された恐怖の家よくある質問。