Como você define um programa como um serviço no Linux (Debian), mas ele está desativado por padrão?

2

Quando você instala o Alfresco, ele oferece a opção de instalá-lo como serviço ou não.

Se você instalá-lo como um serviço, o serviço é iniciado na inicialização, mas como está usando o Tomcat, ele é muito pesado para ser deixado como um programa em segundo plano. Além disso, demora muito mais para parar do que o Apache.

Portanto, eu gostaria de mantê-lo como um serviço, mas ele deve ser desativado por padrão, então tudo que eu preciso fazer é digitar sudo service alfresco start .

Embora eu possa deixar a configuração não como um serviço e escrever um script ou dois, gostaria de aprender mais sobre como os "serviços" funcionam no Linux. O Apache não é um problema, mas seria bom saber onde seus parâmetros de serviço estão armazenados e como você pode alterá-los.

    
por Simon Hoare 20.11.2012 / 12:45

3 respostas

3

A abordagem "geral" seria

$ sudo update-rc.d -f servicename remove

para remover o servicename de qualquer nível de execução para iniciar automaticamente.

Para reativar os padrões, faça

$ sudo update-rc.d servicename defaults
    
por 20.11.2012 / 23:52
3

Você pode usar o sysv-rc-conf para gerenciar runlevels (configure quais serviços devem ser iniciados em quais runlevels).

É bem simples:

  1. Instale: sudo apt-get install sysv-rc-conf
  2. Execute: sudo sysv-rc-conf
  3. Marque seu serviço para ser iniciado nos níveis de execução desejados (2, 3, 4 e 5 são inicialização normal, 0 é o desligamento, 6 é reinicialização). Use as setas do teclado para navegar e a tecla space para alternar uma caixa de seleção.
por 20.11.2012 / 15:01
1

Por padrão, o Debian vem com o SysVinit. Quais serviços são executados nos quais os níveis de execução são controlados por meio de links simbólicos em /etc/initN.d (N = 0 a 6, com 2–5 sendo os níveis normais de execução; S é para serviços iniciados no momento da inicialização). Veja Dmitry Vasilyanov e gertvdijk respostas para formas de configurar esses links simbólicos.

Eu gosto de usar o pacote file-rc , que substitui os links simbólicos por um arquivo de texto simples /etc/runlevel.conf .

Se você for desativar muitos serviços ou se quiser impedir que um serviço seja iniciado quando for instalado ou atualizado (um problema conhecido no Debian), você pode definir uma política de início de serviço local. Escreva um script chamado /usr/sbin/policy-rc.d que implemente o init policy policy de sua escolha. Veja /usr/share/doc/sysv-rc/README.policy-rc.d em seu sistema para detalhes. A implementação de uma política completa é um pouco trabalhosa, mas você pode fazer com que casos simples funcionem; por exemplo, se o script contiver apenas exit 101 , nenhum script init será executado (isso é conveniente para sistemas instalados em um chroot).

    
por 21.11.2012 / 02:10

Tags