No Windows, tenho o gerenciador de serviços, onde vejo todos os serviços do sistema, que podem ser iniciados pelo próprio Windows, configuro o usuário que ele usa, o gerenciamento de direitos está lá e posso passar variáveis e outras informações aos serviços , Posso nomeá-los e criar serviços duplicados de um programa e assim por diante. Então, eu tenho uma ferramenta de gerenciamento principal no Windows.
Como posso fazer o mesmo no Linux? Como posso disparar para executar "svnserve" na inicialização ou como posso configurar os serviços para serem executados em um contexto especial. Como posso ver todos os serviços "programados"?
server
comando no Debian, veja unix.stackexchange.com/q/226089/130402Respostas:
Atualmente existem 3 principais sistemas init usados pelo linux. Alguns anos atrás, havia apenas um, SysVinit. Mas o SysVinit estava seriamente carente de recursos, como gráficos de dependência de serviço, por isso está obsoleto na maioria das distros até agora. Atualmente, a maioria das distros está mudando para systemd . Embora haja também arrivista .
Mas aqui está a resposta para sua pergunta para cada um dos 3 sistemas init:
SysVinit
SysVinit atualmente usado pelo Debian e RedHat. Embora a próxima versão do RedHat (7) esteja usando o systemd.
A maneira universal de ativar os serviços SysVinit na inicialização é vinculando-os a
/etc/rc3.d
(ou/etc/rc2.d
). Todos os serviços podem ser encontrados em/etc/init.d
. Observe, no entanto, que as distribuições geralmente têm sua própria ferramenta para gerenciar esses arquivos, e essa ferramenta deve ser usada. (O Fedora / RedHat possuiservice
echkconfig
, o ubuntu possuiupdate-rc.d
)Serviços de lista:
Começar serviço:
ou
Parar serviço:
ou
Ativar serviço:
(
S95
é usado para especificar a ordem. S01 começará antes de S02, etc)Desativar serviço:
Systemd
A distribuição mais notável usando systemd é o Fedora. Embora seja usado por muitos outros. Além disso, com o Debian optando por usar o systemd em vez de inicializar, ele se tornará o sistema inicial para muitas distribuições (o ubuntu já anunciou que estará iniciando o sistemad).
Serviços de lista:
Começar serviço:
Parar serviço:
Ativar serviço:
Desativar serviço:
Subir na vida
O Upstart foi desenvolvido pelo pessoal do Ubuntu. Mas depois que o debian decidiu seguir com o systemd , o Ubuntu anunciou que iria lançar o inicio .
O Upstart também foi usado brevemente pelo RedHat, pois está presente no RHEL-6, mas não é comumente usado.
Serviços de lista:
Começar serviço:
Parar serviço:
Ativar serviço:
2 maneiras, infelizmente:
Haverá um arquivo
/etc/default/{SERVICENAME}
que contém uma linhaENABLED=...
. Mude esta linha paraENABLED=1
.Haverá um arquivo
/etc/init/{SERVICENAME}.override
. Verifique se ele contémstart
(ou está ausente), nãomanual
.Desativar serviço:
Nota: Existe também o sistema init 'OpenRC' que é usado pelo Gentoo. Atualmente, o Gentoo é a única distribuição que o utiliza, e não está sendo considerada para uso, nem é suportada por nenhuma outra distribuição. Portanto, não estou cobrindo seu uso (embora, se a opinião é minha, posso adicioná-lo).
fonte
chkconfig
eupdate-rc.d
são mencionados. Veja o segundo parágrafo em SysVinit :-)Distribuições diferentes usam mecanismos diferentes para gerenciar serviços. O software para gerenciar serviços é chamado init , após o nome tradicional do primeiro processo (com o ID do processo 1), responsável por iniciar os outros.
O Debian usa a variante tradicional SysVinit do init. Sob esse sistema, há uma coleção de scripts no diretório
/etc/init
(esse e outro local podem variar um pouco entre as distribuições que usam o SysVinit). Esses scripts não são chamados diretamente, mas através de links simbólicos nos diretórios/etc/rc?.d
. É a presença e o nome desses links simbólicos que determinam quando os serviços são iniciados. Para mais detalhes, leia o capítulo sobre init na Referência Debian .Dê uma olhada
/etc/rc?.d
para ver quais serviços já estão presentes. A letra ou o dígito antes do ponto é o nível de execução; as entradas cujo nome começaS
são executadas com o argumentostart
ao entrar no nível de execução e as entradas cujo nome começaK
são executadas ao sair do nível de execução. A sequência normal do nível de execução é: S durante a inicialização (/etc/rcS.d/S*
são executadas) e 2 (/etc/rc2.d/S*
são executadas). No momento do desligamento,/etc/rc2.d/K*
são executados, o nível de execução muda para 0 (ou 6 para uma reinicialização).Em poucas palavras, se você deseja criar um script de inicialização para um novo serviço:
/etc/init.d
. Este script deve aceitar um argumento que pode serstart
,stop
,force-reload
,restart
, ou (opcional)reload
oustatus
. A diferença entrereload
erestart
érestart
equivalente astop
seguida porstart
enquantoreload
recarrega a configuração sem interromper nada (se o serviço suportar);force-reload
fazreload
se disponível erestart
de outra forma. Veja os arquivos existentes e Fazendo scripts rodarem no momento da inicialização com o Debian para exemplos.update-rc.d
para criar links simbólicos para iniciar e parar seu serviço. A maioria dos serviços é executada nos níveis 2, 3, 4 e 5.Observe que, para fornecer acesso ao svn, pode ser mais fácil configurar o Apache e usar o protocolo HTTP ou HTTPS. Isso tem o benefício de permitir a navegação rápida no repositório através de um navegador da web.
fonte
De um plano tradicional de unix, não há nada de especial em serviços. Os serviços são apenas processos, mas com duas exceções: eles não precisam de um terminal e começam na inicialização. como eles são iniciados na inicialização depende do init (que pode ser sysv init, bsd init, upstart, systemd ou outra coisa; verifique sua página de manual quanto ao init) e se você está usando um wrapper para a tarefa ou para a configuração init. Não há nada que o impeça de executar um serviço a partir de um terminal; na verdade, isso é comum para fins de teste.
fonte