Estou criando um pacote de configuração e gostaria de parar e reiniciar os serviços cuja configuração é afetada. Agora eu estou usando o service [stop|restart]
em {pre,post}{inst,rm}
forma. Eu li em uma pergunta em algum lugar que invoke-rc.d
é o caminho certo , porque honra as preferências do usuário sobre um serviço. No entanto, não encontrei nenhuma orientação sobre isso. Alguém conhece essas diretrizes? Ou tem algum conselho sobre qual caminho devo escolher? O pacote é de uso interno e provavelmente será apenas para 14.04 nos próximos dois anos. No entanto, gostaria de deixar um estado o mais limpo possível para o meu sucessor, o que também systemd
está em minha mente.
Na invoke-rc.d
página do manual :
Todo acesso aos scripts init pelos scripts de manutenção dos pacotes Debian deve ser feito através do invoke-rc.d .
No Manual de Políticas Debian, Capítulo 9, Seção 3.3 :
Os mantenedores devem usar a camada de abstração fornecida pelos programas update-rc.d e invoke-rc.d para lidar com initscripts nos scripts de seus pacotes, como postinst, prerm e postrm.
...
Os scripts do mantenedor do pacote devem usar invoke-rc.d para chamar os initscripts /etc/init.d/*, em vez de chamá-los diretamente.
O Debian está usando sysv-init
e mudará diretamente para systemd
, e eu suponho que o manual de políticas será atualizado no devido tempo para referência systemctl
. No entanto, o que tenho dúvidas é: devo usar em invoke-rc.d
vez de service
? Eu posso dizer dpkg
que estou interessado em alguns arquivos (por meio de gatilhos), então existe uma maneira de dizer dpkg
que também estou interessado em alguns serviços e dpkg
fazer a reinicialização / recarregamento?
Para esclarecer: não estou escrevendo scripts de inicialização. Estou fornecendo um pacote com configuração para outros aplicativos, como Puppet, NTP, etc., então paro e reinicio os serviços correspondentes nos scripts.
Aqui , por exemplo, é uma questão Docker sobre invoke-rc.d
vs service
. O problema ainda está aberto, com uma pessoa, provavelmente um mantenedor, comentando que eles definitivamente estão interessados em fazer isso da maneira certa - claramente, nenhum de nós tem certeza do que é isso. (Minha pergunta é independente desse problema.)
invoke-rc.d
página de manual e os documentos de política do Debian nos dizem para usá-lo em conexão com/etc/init.d/
scripts (possivelmente porque eles ainda usavam sysv-init). Como isso muda com o Upstart ou o systemd?invoke-rc.d ... || service ...
Uma maneira melhor para os sistemas systemd é usar deb-systemd-invoke .
fonte
deb-systemd-invoke
.