Bem-vindo ao Ask Ubuntu.
Existem 3 sistemas init no Ubuntu. Os novos sistemas são compatíveis com versões anteriores, mas os sistemas antigos não são compatíveis com versões futuras.
Os projetos de software geralmente empacotam scripts para vários sistemas init, já que podem ser executados em vários sistemas. O Ubuntu, por sua vez, instala vários estilos de arquivos init, mesmo que eles não sejam todos usados, o que é o caso aqui.
O arquivo init.d
que você encontrou é o estilo mais antigo do script de inicialização, "SysvInit".
O comando "service" que você encontrou é usado para os scripts init "SysVinit" e "Upstart", mas em um sistema baseado em systemd, as chamadas para usá-lo efetivamente são redirecionadas para comandos equivalentes ao systemd, razão pela qual O script "init.d" não teve efeito.
O arquivo postgresql.service
que você encontrou está lá, você pode gerenciar um serviço "postgresql" virtual, que iniciará e interromperá todos os serviços do PostgreSQL ao mesmo tempo, sem mencionar uma versão específica. Você pode ver dicas de como o arquivo se encontra no arquivo "@ .service" encontrado:
PartOf=postgresql.service
ReloadPropagatedFrom=postgresql.service
Before=postgresql.service
Isso parece um mau uso de um arquivo .service
. Usar uma unidade .target
é uma maneira mais natural de agrupar uma coleção de serviços. Você pode verificar man systemd.directives
para encontrar as entradas do documento para todas essas diretivas, se quiser entender os detalhes delas.
O arquivo [email protected]
é um arquivo "modelo", para que várias instâncias do PostgreSQL possam ser executadas no mesmo servidor com versões diferentes, mas iniciadas e interrompidas de maneira consistente. Este é o arquivo para focar. Como um comentário no arquivo sugere, você pode usá-lo para iniciar uma versão específica do PostgreSQL, como:
systemctl start [email protected]
systemctl stop [email protected]
systemctl restart [email protected]
É claro que você precisa ter a versão do PostgreSQL instalada que você está tentando iniciar ou parar!
Assim, a configuração systemd do PostgreSQL permite iniciar ou parar todos os clusters do PostgreSQL de uma só vez, ou parar e iniciar um cluster em particular.
Para seu uso, concentre-se nos arquivos systemd
.service
e systemctl
service. Não há necessidade de usar os comandos init.d
ou service
quando arquivos systemd
.service
são fornecidos.
Veja também: Coexistência de scripts de inicialização SysV, Upstart e systemd .