Como os serviços iniciam é muito condicional na distribuição Linux. Por favor, diga-nos o que você está tentando realizar (e em que distribuição e talvez o Ambiente de Trabalho), porque, no momento, acho que você provavelmente não está pensando no problema corretamente.
Xenoterracide
Respostas:
23
Para executar um serviço sem ou antes de efetuar login no sistema (por exemplo, "na inicialização"), você precisará criar um script de inicialização e adicioná-lo à sequência de inicialização.
Há três partes em um script de serviço: iniciar, parar e reiniciar.
A estrutura básica de um script de serviço é:
Depois de ajustar o script ao seu gosto, basta colocá-lo em /etc/init.d/
E adicioná-lo ao processo de inicialização do serviço do sistema (no Fedora, eu não sou um usuário do Ubuntu,> D):
chkconfig -add <ServiceName>
O serviço será adicionado ao processo de inicialização do sistema e você não precisará iniciá-lo manualmente novamente.
Observe que, enquanto iniciar, parar e reiniciar, geralmente são suficientes para scripts init simples. Você provavelmente também deseja incluir uma ação 'status', que é fácil no Debian e em outras distros que incluem status_of_proc () em seu pacote init-functions. Pacotes bem gerenciados incluirão todas as funções exigidas pelo LSB ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ). O script init distribuído com o tomcat no Ubuntu contém todas essas ações, provavelmente é apostado apenas em usá-lo.
Steven D
19
Dependendo do sistema init, você cria o script init de maneira diferente. O Fedora oferece a você o sistema inicial e o sistema para escolher e, é claro, compatibilidade com SysV.
Upstart
criar arquivo de definição de serviço como /etc/init/custom-tomcat.conf
ponha dentro:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
E seu Tomcat deve iniciar na inicialização do sistema.
Systemd
criar definição de serviço em /etc/systemd/system/custom-tomcat.service
O Tomcat é um serviço bastante comum, eu recomendo que você já veja o script init fornecido pela distribuição. Provavelmente, ele funciona com seu binário personalizado, com pouco ou nenhum ajuste.
Se você possui um crondaemon, um dos ganchos de tempo cron predefinidos é o @rebootque é executado naturalmente quando o sistema é iniciado. Execute crontab -epara editar seu crontabarquivo e adicione uma linha:
Isso se aplica a todas as startups ou apenas reinicializa?
WhyNotHugo
Aplica-se apenas ao fcron - não ao vixie-cron ou a qualquer outro cron AFAIK.
Maciej Piechotka
@ Maciej Definitivamente funciona para vixie-cron; é isso que eu uso
Michael Mrozek
@Hugo Todas as startups
Michael Mrozek
6
Para simplesmente executar um script depois que o computador foi iniciado, mas antes que um usuário efetue login, você pode simplesmente editar o script /etc/rc.local, destinado a resolver exatamente essa tarefa.
Respostas:
Para executar um serviço sem ou antes de efetuar login no sistema (por exemplo, "na inicialização"), você precisará criar um script de inicialização e adicioná-lo à sequência de inicialização.
Há três partes em um script de serviço: iniciar, parar e reiniciar.
A estrutura básica de um script de serviço é:
Depois de ajustar o script ao seu gosto, basta colocá-lo em /etc/init.d/
E adicioná-lo ao processo de inicialização do serviço do sistema (no Fedora, eu não sou um usuário do Ubuntu,> D):
O serviço será adicionado ao processo de inicialização do sistema e você não precisará iniciá-lo manualmente novamente.
Felicidades!
fonte
Dependendo do sistema init, você cria o script init de maneira diferente. O Fedora oferece a você o sistema inicial e o sistema para escolher e, é claro, compatibilidade com SysV.
Upstart
/etc/init/custom-tomcat.conf
ponha dentro:
E seu Tomcat deve iniciar na inicialização do sistema.
Systemd
/etc/systemd/system/custom-tomcat.service
ponha dentro:
e habilite seu serviço usando
systemctl enable custom-tomcat.service
. Será iniciado a cada inicialização normal.É claro que existem mais algumas opções de configuração para os dois sistemas init, você pode ver as na documentação deles.
fonte
O Tomcat é um serviço bastante comum, eu recomendo que você já veja o script init fornecido pela distribuição. Provavelmente, ele funciona com seu binário personalizado, com pouco ou nenhum ajuste.
fonte
Se você possui um
cron
daemon, um dos ganchos de tempo cron predefinidos é o@reboot
que é executado naturalmente quando o sistema é iniciado. Executecrontab -e
para editar seucrontab
arquivo e adicione uma linha:fonte
Para simplesmente executar um script depois que o computador foi iniciado, mas antes que um usuário efetue login, você pode simplesmente editar o script /etc/rc.local, destinado a resolver exatamente essa tarefa.
fonte
Você pode criar um script mais sofisticado, que permita executar sob as permissões de um usuário específico, da seguinte maneira:
O script entra em /etc/init.d/myservice e você inicia o serviço executando:
Leia a página do manual no start-stop-daemon para entender como ele funciona.
fonte
No Ubuntu ou Debian, como você pode usar, para adicionar
remover
Tchau! \ o
é bom implementar o status das funções e o force-reload para serem compiladores de LSB
fonte
service --status-all
lista?