at 18:00 shutdown now
e shutdown 18:00
, eles estão iniciando o mesmo serviço? Eles funcionam da mesma forma?
relate perguntas
-
smartmontools - O teste automático é o mesmo que executar um teste curto?
-
comando systemctl não funciona no RHEL 6
-
Por que meu switch não está obtendo um endereço do pool especificado
-
Criando menus personalizados na guia do menu Aplicativos no CentOS7 GNOME
-
Roteador estranho funciona com centos 6 [fechado]
at 18:00 shutdown now
cria um trabalho "at", que é executado no horário especificado peloat
daemon ou talvez pelocron
daemon, dependendo do seu sistema.shutdown 18:00
inicia um processo em seu shell que aguarda até o tempo especificado e, em seguida, executa o desligamento. Este comando pode ser encerrado se, por exemplo, sua sessão de shell for encerrada.O resultado líquido na maioria dos casos será o mesmo: o sistema é desligado às 18:00.
Uma diferença é que se você usar
at
, o trabalho será armazenado e se o sistema for desligado por algum outro meio antes das 18:00, ao inicializar novamente o trabalho ainda estará esperando para ser executado; se o tempo já tiver passado, o desligamento será executado imediatamente, o que pode ser bastante inesperado.Outra diferença é que
shutdown 18:00
vai criar um/run/nologin
arquivo 5 minutos antes do horário agendado para evitar que as pessoas façam login depois desse momento. Também serão enviadas mensagens de difusão para avisar aos usuários logados que o sistema está prestes a ser desligado.Você precisa levar em conta essas diferenças para decidir qual usar.
E agora, a resposta do systemd.
Se você tem o CentOS 7, você tem um sistema operacional systemd e a resposta é diferente.
at 18:00 shutdown now
ainda agenda por meio doat
subsistema, mas esseshutdown
comando, assim como aquele que você invoca diretamente comshutdown 18:00
, é diferente. Na verdade, é o programa do systemdsystemctl
.systemctl
faz as coisas de forma diferente.Em primeiro lugar,
systemctl
envia a solicitação de desligamento agendada para ser processada por um daemon, praticamente como noat
caso. No entanto, este é um daemon do systemd, especificamentelogind
(osystemd-shutdownd
daemon foi removido do systemd em maio de 2015, cuja alteração se espalhou até as versões secundárias posteriores do CentOS 7), não oat
subsistema.systemctl
fala um protocolo interno para um corretor de barramento de desktop (em todo o sistema) que, por sua vez, se comunica comlogind
.Então, como no
at
caso, não há nenhumshutdown
processo sentado fazendo a contagem regressiva e gerando aswall
mensagens. Assim, pode-se fazer logout e isso não afetará o agendamento, e o cancelamento não é tão simples quanto interromper / matar o processo de primeiro plano da sessão de login. Assim como comat
.Ainda existem mensagens, ao contrário do
at
caso, mas são emitidas porlogind
. Além disso, diferentemente doat
caso, o trabalho agendado não persiste nas reinicializações do sistema, portanto, um desligamento real cancela um agendado. Existe um arquivo no sistema de arquivos, mas é sob o/run/systemd/shutdown
qual está o armazenamento não persistente.Outras diferenças são que pode haver apenas um desligamento programado por vez, enquanto um pode enviar vários
at
trabalhos, e o Kit de Políticas aplicará regras parashutdown
execução em contexto de sessão sem login como umat
trabalho diferente das regras aplicadas parashutdown
execução em contexto da sessão de login. O último pode ser mais permissivo, permitindo (digamos) que um usuário sem privilégios que esteja conectado à sessão de login ativa desligue o sistema.Leitura adicional