Como posso garantir um desligamento completo do sistema no FreeNAS / FreeBSD?

1
O

upsmon é configurado para desligar automaticamente o sistema em caso de falta de energia.

No entanto, o desligamento parece falhar no meio do caminho, deixando-me sem acesso remoto ao sistema:

Feb  2 12:21:54 the_host upsmon[22861]: Executing automatic power-fail shutdown
Feb  2 12:21:54 the_host shutdown: power-down by root:
Stopping cron.
Waiting for PIDS: 3871.
Stopping zfsd.
Waiting for PIDS: 3857.
Stoppingthejail....arp: writing to routing socket: No such file or directory
bridge0: can't disable some capabilities on em0: 0x1
Unmounting user-supplied file-systems
90 second watchdog timeout expired. Shutdown terminated.
Fri Feb  2 12:23:55 CET 2018
Feb  2 12:23:55 the_host init: /bin/sh on /etc/rc.shutdown terminated abnormally, going to single user mode
Feb  2 12:23:55 the_host init: /bin/sh on /etc/rc.shutdown terminated abnormally, going to single user mode
Feb  2 12:23:55 the_host upsd[22837]: mainloop: Interrupted system call
Feb  2 12:23:55 the_jail syslogd: exiting on signal 15
Feb  2 12:24:15 init: some processes would not die; ps axl advised

O acesso físico é necessário para reiniciar.

1. Como posso garantir que o desligamento seja concluído e deixe o sistema em um estado desligado (para que eu possa inicializá-lo por meio de um pacote mágico de ethernet)?

2. Como posso garantir a manutenção do acesso remoto no referido cenário?

    
por user569825 06.03.2018 / 23:10

1 resposta

0

Você não pode.

A máquina de estado no programa FreeBSD /sbin/init simplesmente não acomoda você. Nessas e em outras falhas, ele transita para fora do estado em que executa /etc/rc.shutdown para o estado "modo de usuário único", no qual gerou um shell interativo no terminal "console" e espera que um operador de sistema esteja sentado e trabalhando lá.

O sistema é, como o aviso informa, esperando que você intervenha diretamente, nesse terminal privilegiado, e use o ps e outros comandos para descobrir por que você tem processos que não terminarão, terminá-los e reinicie o desligamento.

Você poderia, é claro, tornar o console um terminal real, serial (em vez de virtual fornecido pelo emulador de terminal do kernel usando o hardware HID conectado diretamente) e usar algum kit extra para tornar esse terminal serial remoto.

Ou você pode substituir o gerenciamento de sistema fornecido pelo FreeBSD por um gerenciador de sistema que não incorpore a idéia de um "modo de usuário único" ser uma etapa em uma escada que é atravessada, em direções opostas, por bootstrap e shutdown.

Mas, além disso, o design aqui, originário do mundo onde grandes máquinas multiterminal tinham estações diferenciadas para o operador do sistema, de onde ele supervisionava diretamente o bootstrap e o shutdown e interferia manualmente nos erros, realmente contra a noção de um erro. servidor de arquivos totalmente sem título que não possui babá.

Leitura adicional

por 07.03.2018 / 08:48