O Teamcity não inicia quando executado como serviço, mas o comando real funciona bem

O Teamcity não inicia quando executado como serviço, mas o comando real funciona bem

Estou tentando configurar o teamcity como um servidor doméstico, mas não consigo executar o serviço. Isso está no Ubuntu 16.04.

Eu segui as instruçõesaquiaté oInstalar e configurar banco de dadospapel. (Exceto que estou usando apenas /opt/Teamcity em vez de /opt/jetbrains/Teamcity)

Agora, quando tento executar o serviço, recebo isso

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.

No entanto, quando eu executo o comando real no script

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

Funciona bem. Alguma ideia?

EDITAR

Aqui está a saída dejournalctl -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

Responder1

13 de outubro 23:15:59 Home-Server systemd [8256]: teamcity.service: Falha na etapa de geração de EXEC /etc/init.d/teamcity: erro de formato Exec
-- Assunto: O processo /etc/init.d/teamcity não pôde ser executado

… que diz exatamente qual é o problema. Seu arquivo não é um script executável. Também não está na forma correta prescrita para rcscripts van Smoorenburg antigos pela Política Debian, faltando até mesmo os antigos cabeçalhos RedHat/SuSE para rcscripts van Smoorenburg, muito menos os LSB que se tornaram obrigatórios no Debian anos atrás.

Mas também é uma perda de tempo consertar isso. Jogue fora. Use uma unidade de serviço systemd.

Você está usando um mecanismo que temduas vezesfoi substituído no Ubuntu, uma vez pelo upstart e novamente pelo systemd.

Estamos em 2016 e a primeira regra para migrar para o systemd se aplica. No entanto, você deve ignorar as muitas pessoas ao longo dos últimos anos (comoBen Whiteheadeessa pessoa sem nome) que gostaria que você criasse outro candidato para a Casa do Terror do sistema. Nãoenvolva um Poor Man's Dæmon Supervisor, mal escrito em shell script, dentro de uma unidade systemd.

[Unidade]
Descrição=TeamCity
Documentação=https://unix.stackexchange.com/a/316369/5132

[Serviço]
Tipo=simples
Usuário=teamcity
Ambiente=TEAMCITY_DATA_PATH=/opt/jetbrains/TeamCity/.BuildServer
Ambiente=TEAMCITY_SERVER_OPTS=-Djava.awt.headless=true
ExecStart=/opt/jetbrains/TeamCity/bin/runAll.sh executar

[Instalar]
WantedBy = multiusuário.target

Leitura adicional

informação relacionada