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.)