precisa parar o serviço initv antes da remoção / atualização do rpm?

0

Existe a necessidade de interromper um serviço antes de realizar a remoção ou atualização do pacote RPM do serviço?

Normalmente, o que o gerenciador de pacotes RPM faz ao executar uma atualização é instalar primeiro o novo pacote e, em seguida, remover o antigo. Trecho:

Run %pre from "software-2".
Place files from "software-2".
Run %post from "software-2".
Run %preun from "software-1".
Delete files unique to "software-1".
Run %postun from "software-1".

Neste caso, o serviço não deve ser interrompido em% pre antes de instalar o novo pacote?

Aqui está uma parte do meu specfile para referência:

%preun
# do not run if this is an upgrade
if [ $1 -eq 0 ]; then
  /sbin/service myservice stop > /dev/null 2>&1
  /sbin/chkconfig --del /etc/init.d/myservice
fi
exit 0

%post
/sbin/chkconfig --add /etc/init.d/myservice
exit 0

O que tenho é o que todo mundo parece estar fazendo e não entendo por que isso funcionaria no caso de uma atualização, sem interromper o serviço primeiro em% pre.

    
por joueffy 15.03.2018 / 19:48

1 resposta

0

Você esqueceu como os sistemas de arquivos UNIX funcionam. Contanto que o carregador de link deixe os arquivos de objeto abertos, o processo verá os arquivos de objeto com os quais foi iniciado, pois ele contém um identificador para o arquivo removido agora. Quando esse identificador estiver fechado () ed, o arquivo será realmente removido. Por isso, é seguro deixar o daemon em execução ao excluir e instalar novos arquivos de objeto.

É claro que a versão antiga do daemon está em execução, por isso 'safe' não é tão seguro se a atualização for resolver um problema de segurança. É por isso que o APT do Debian tem uma política diferente e pára / inicia os daemons em uma atualização.

Você pode encontrar esta especificação em scriptlets RPM para ser útil se você quiser altere a política do seu pacote.

    
por 16.03.2018 / 00:19