Como executar um script automaticamente na inicialização do sistema no centos

8

Instalei com sucesso o TeamCity ib CentOS 6.2 Minimal. Estou preso ao tentar executar um script automaticamente na inicialização do sistema:

/opt/TeamCity/bin/teamcity-server.sh start

Eu pesquisei e tentei vários métodos, todos os quais parecem falhar. A maioria dos métodos aponta para adicionar o script de inicialização a um dos arquivos rc.local:

/etc/rc.d/rc.local
/etc/rc.local

E o conteúdo de rc.local contém a linha:

/opt/TeamCity/bin/teamcity-server.sh start

Nenhum dos quais iniciará o servidor teamcity

Não há problemas se eu executar o script manualmente.

Parece simples, mas como faço para que um script de shell seja executado automaticamente?

    
por atp03 14.05.2012 / 18:47

3 respostas

15

Se o script de início do teamcity for um script de inicialização compatível com LSB (isto é, < href="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html" title="LSB 4.1.0: Seção 20.2. Ações do script de inicialização"> se ele fornecer start , stop e outros argumentos , você pode simplesmente copiar o script para a pasta /etc/init.d e executar (como root):

# chkconfig --add <script_name>
# chkconfig <script_name> on

Um link simbólico para o arquivo também deve ser OK. Então tente (como root):

# ln -s /opt/TeamCity/bin/teamcity-server.sh /etc/init.d/teamcity-server
# chkconfig --add teamcity-server
# chkconfig teamcity-server on

Se não iniciar na inicialização, mas começar manualmente sem problemas, verifique:

  1. permissões (talvez o programa não possa ser executado como root. Tente fazer logon como root e executá-lo) e
  2. seu PATH (talvez o script precise de alguma coisa, mas não saiba onde está).

Para imprimir o conteúdo do seu PATH, execute:

echo $PATH

Para verificar se o motivo para o script não iniciar é o PATH, tente:

$ cd /
$ PATH= /opt/TeamCity/bin/teamcity-server.sh

Este comando irá limpar temporariamente o seu PATH e executar o comando. Se o comando precisar de alguma informação específica sobre o PATH, ele falhará (tenha cuidado para executar exatamente como indicado acima, um espaço entre PATH = e o restante do comando ).

    
por 29.05.2012 / 17:16
6

no comando do Fedora 17

# chkconfig --add teamcity-server

diz: o serviço teamcity-server não suporta o chkconfig você deve adicionar o cabeçalho como:

#! /bin/bash
# chkconfig: - 10 90

somente depois de executar o primeiro comando.

    
por 02.10.2012 / 14:36
2

Quando o script é executado manualmente, funciona corretamente. Mas, quando executado automaticamente, não funciona.

Eu encontrei o culpado: o TeamCity é executado sob o usuário teamcity . Ele deve estar presente no arquivo /etc/sudoers e você deve adicionar, usando visudo uma linha como esta:

Defaults:teamcity !requiretty
    
por 15.05.2014 / 08:27