O documento ao qual você está vinculado é o FAQ, que, embora relevante, não é necessariamente considerado como autoritativo (as distinções são provavelmente sutis, e qualquer inconsistência é realmente um bug). O documento oficial é o Debian Policy Manual, que tem um capítulo inteiro dedicado aos scripts do mantenedor . Como isso não é tão fácil de ler, existem diagramas úteis no wiki que explicam as relações entre os scripts do mantenedor.
Basicamente, o único script que precisa para interromper os serviços no pacote correspondente é prerm
; Como você aponta, esse script é chamado ao remover o pacote, bem como ao atualizá-lo. Um ponto importante em alguns casos é que é o script prerm
do pacote instalado, que é usado por padrão; se falhar antes de uma atualização, o sistema de empacotamento também tentará o script prerm
atualizado.
preinst
sempre vem após prerm
durante uma atualização e, quando for executado, os serviços devem ser interrompidos. Alguns pacotes dos scripts ' preinst
' tentam parar os serviços novamente, só para ter certeza; exemplos disso incluem mysql-server-5.6
e timidity
, mas não há muitos.
Então, em resumo, você deve parar seus serviços em prerm
, e você pode fazê-lo em preinst
também (embora não haja necessidade de forma eficaz); você não deve preferir preinst
over prerm
para isso e não precisa dos dois. Eu só usaria prerm
.
(Estritamente falando, devo esclarecer que o Manual de Políticas é descritivo e não prescritivo, pois documenta a prática atual em vez de defini-la - por isso não é tão autoritário quanto você poderia esperar, e as práticas evoluem antes de serem documentadas Mas, neste caso em particular, a Política está correta.Enquanto estou nisso, como prerm
sabe se está sendo chamado para uma atualização, pode ser tentador tentar truques inteligentes e deixar os serviços em execução até que algum script posterior possa reiniciá-los , a fim de reduzir o tempo de inatividade do serviço, mas isso só está pedindo problemas.)