Como iniciar o processo inicial para o aplicativo golang?

1

Estou usando o upstart para iniciar meu aplicativo golang. Eu tenho a estrutura da pasta do meu aplicativo assim,

   Web-app/
         /app
             main.go

Eu construí a aplicação

$cd /home/ec2-user/go/src/github.com/dineshappavoo/web-app/app/
$go build ./...

Gerou o aplicativo [arquivo executável] na pasta do aplicativo como app.

E colocou a pasta web-app.conf in /etc/init/ . Aqui está o conteúdo do web-app.conf,

#Web app upstart script
description "start and stop web app"

start on (net-device-up
and local-filesystems
and rullevel [2345])

stop on runlevel [016]

respawn
respawn limit 5 30

console output   

script
    chdir /home/ec2-user/go/src/github.com/dineshappavoo/web-app/app
    exec ./app
end script

Quando eu experimentei sudo initctl list, ele lista o processo como stop / waiting. E eu tentei iniciar o processo

$sudo initctl start web-app

Ele mostra o processo como iniciar / executar. Mas não é iniciado.

Eu verifiquei os /var/log/messages logs. Mostra,

init: web-app main process (18740) terminated with status 127

Eu não consegui iniciar o processo. Eu acho que há algum problema com o chdir. Eu tentei diferentes opções nos últimos dois dias, mas sem sorte. E eu sou razoavelmente novo em começar. Alguém poderia me ajudar com isso?

    
por Dany 04.07.2016 / 07:50

1 resposta

0

O status de saída 127 significa que o comando não foi encontrado. Seu problema é que você está tentando usar uma sub-rotina dentro do bloco de script, então o upstart está tentando executá-lo como um comando, que não existe. Você deve movê-lo acima do bloco de script.

Além disso, como você está usando apenas exec no bloco de script, é possível removê-lo e usar apenas exec .

#Web app upstart script
description "start and stop web app"

start on (net-device-up
and local-filesystems
and rullevel [2345])

stop on runlevel [016]

respawn
respawn limit 5 30

console output   

chdir /home/ec2-user/go/src/github.com/dineshappavoo/web-app/app
exec ./app
    
por 04.07.2016 / 17:22