sudo start meu-projeto não funciona

2

Estou usando o seguinte script em /etc/init/my-project.conf na minha instância do AWS.

description "start and stop the go program 'my-project'"

start on filesystem or runlevel [2345]
stop on runlevel [!2345]

env USER='ec2-user'
env APP_DIR='/home/ec2-user/go/src/bitbucket.com/xxx/my-project/'
env APP_EXEC='my-project'

exec start-stop-daemon —start —chuid ${USER} —chdir ${APP_DIR} —exec ${APP_DIR}${APP_EXEC}
O comando

service my-project start fornece o erro unrecognized service . sudo start my-project inicia um processo que não é meu projeto. Quando executo o comando sudo status my-project , recebo my-project stop/waiting . Eu não consegui encontrar o que estou fazendo errado.

No caminho /home/ec2-user/go/src/bitbucket.com/xxx/my-project/ , existe um arquivo executável chamado my-project . Então, basicamente /home/ec2-user/go/src/bitbucket.com/xxx/my-project/my-project executa o executável.

    
por Thellimist 19.07.2015 / 15:29

1 resposta

0

Primeiro, o comando "service" é para os "scripts de inicialização do System V" encontrados em /etc/init.d e não nas configurações de Upstart encontradas em / etc / init. Para o Upstart, você quer usar o "initctl". O equivalente de

$ service --status-all

para Upstart é

$ initctl list

Usando o exemplo de configuração do upstart encontrado no link como guia, eu consegui obter uma configuração do Upstart para usar o seguinte:

    #description "start and stop the go program 'my-project'"

    start on filesystem or runlevel [2345]
    stop on runlevel [!2345]

    script

    USER='ec2-user'
    APP_DIR='/home/ec2-user/go/src/bitbucket.com/xxx/my-project/'
    APP_EXEC='my-project'

    su - ${USER} -c "exec ${APP_DIR}${APP_EXEC}"

    end script

Se suas alterações em /etc/init/my-project.conf não tiverem efeito, você pode tentar forçar uma atualização com:

$ initctl reload-configuration

Também consegui remover o uso de "env" porque era desnecessário.

    
por 24.07.2015 / 02:22