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

0

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

Eu segui as instruções aqui até o < strong> Instalar e configurar o banco de dados . (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 faço o comando real no script

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

Funciona bem. Alguma idéia?

EDITAR

Aqui está a saída de 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
    
por Ryan Stull 14.10.2016 / 01:44

1 resposta

5
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

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

Mas também é um desperdício de tempo consertar isso. Jogue fora. Use uma unidade de serviço do systemd.

Você está usando um mecanismo que foi duas vezes substituído no Ubuntu, uma vez por upstart e novamente por systemd.

Agora é 2016, e a primeira regra para migrar para o systemd se aplica. No entanto, você deve ignorar as muitas pessoas nos últimos anos (como Ben Whitehead e esta pessoa sem nome ) que você teria que criar outro candidato para o systemd House of Horror. Não envolva um Supervisor da Daemon do Pobre Homem, escrito mal em shell script, dentro de uma unidade do sistema.

[Unit]
Description=TeamCity
Documentation=https://unix.stackexchange.com/a/316369/5132

[Service]
Type=simple
User=teamcity
Environment=TEAMCITY_DATA_PATH=/opt/jetbrains/TeamCity/.BuildServer
Environment=TEAMCITY_SERVER_OPTS=-Djava.awt.headless=true
ExecStart=/opt/jetbrains/TeamCity/bin/runAll.sh run

[Install]
WantedBy=multi-user.target

Leitura adicional

por 14.10.2016 / 10:33