Eu finalmente encontrei uma maneira pesada de forçar um desligamento em menos de 300 segundos. O período de espera de 300 segundos é especificado em /etc/init.d/sendsigs
, que é um script de desligamento que tenta eliminar processos restantes que não foram concluídos com sucesso nas partes anteriores da sequência de desligamento. Encontre o seguinte código no script:
if [ $seq -ge 300 ] ; then
break
fi
É onde o tempo máximo de espera de 300 segundos é especificado. Altere 300 para um número desejado de segundos maior que 10 (outras partes do script já especificam um tempo de espera de 10 segundos). Você precisará usar o sudo para alterar este arquivo, pois ele não tem permissões de gravação para um usuário comum.
Esta é uma tática muito pesada, e não é uma boa solução a longo prazo. Se você tiver armazenamento de arquivos de rede que pode estar pendurado no desligamento, ou se qualquer outro processo (ou seja, mySQL) pode estar esperando legitimamente no desligamento, não siga este método. Mas, para um laptop ou computador de uso geral com uma configuração de software padrão, ele permitirá pelo menos que você desligue e reinicie sem esperar 5 minutos toda vez.