Não é possível executar o serviço web C ++ (usando libhttpserver) como serviço systemd, tudo funciona corretamente ao executar a partir do terminal (como mesmo usuário)

1

Este é o meu arquivo unitário systemd (quase idêntico é usado para executar o serviço web Meteor e ele simplesmente funciona):

[Unit]
Description=SomeService

[Service]
ExecStart=/opt/myapp/app
WorkingDirectory=/opt/myapp

[Install]

Este é o log do systemd (é idêntico tanto ao iniciar com o sistema quanto ao reiniciar o serviço manualmente):

● someservice.service - SomeService
   Loaded: loaded (/etc/systemd/system/multi-user.target.wants/someservice.service)
   Active: failed (Result: signal) since sat 2017-03-04 14:54:29 CET; 1s ago
  Process: 1543 ExecStart=/opt/myapp/app (code=killed, signal=ABRT)
 Main PID: 1543 (code=killed, signal=ABRT)

mar 04 14:54:29 somehostname systemd[1]: Started SomeService.
mar 04 14:54:29 somehostname someservice[1543]: Unable to connect daemon to port: 3501
mar 04 14:54:29 somehostname someservice[1543]: terminate called after throwing an instance of 'httpserver::webserver_exception'
mar 04 14:54:29 somehostname someservice[1543]: what():  httpserver runtime error
mar 04 14:54:29 somehostname systemd[1]: someservice.service: main process exited, code=killed, status=6/ABRT
mar 04 14:54:29 somehostname systemd[1]: Unit someservice.service entered failed state.

A porta é certamente não utilizada, alterando a porta ou truques como / bin / bash -c "dormir 5; / opt / myapp / app" ou executando como root (sem diretiva de usuário) não ajuda. Também devo mencionar que estou tentando executá-lo no contêiner systemd-nspawn. Dentro e fora do container: atualizado Debian Jessie (estável). Alguém pode ajudar?

    
por MobileDevelopment 04.03.2017 / 15:03

0 respostas