at 18:00 shutdown now
i shutdown 18:00
czy rozpoczynają tę samą usługę? Czy działają w ten sam sposób?
at 18:00 shutdown now
tworzy zadanie „at”, które jest wykonywane w określonym czasie przez at
demona lub może cron
demona, w zależności od systemu.
shutdown 18:00
uruchamia proces w powłoce, który czeka do określonego czasu, a następnie wykonuje zamknięcie. To polecenie może zostać zakończone, jeśli np. Sesja powłoki zostanie zakończona.
Wynik netto w większości przypadków będzie taki sam: system zostanie zamknięty o godzinie 18:00.
Jedną różnicą jest to, że jeśli użyjesz at
, zadanie zostanie zapisane, a system zostanie zamknięty w inny sposób przed godziną 18:00, po ponownym uruchomieniu zadanie będzie nadal czekało na uruchomienie; jeśli czas już minął, zamknięcie zostanie wykonane natychmiast, co może być dość nieoczekiwane.
Kolejną różnicą jest to, że shutdown 18:00
utworzy /run/nologin
plik na 5 minut przed zaplanowanym czasem, aby uniemożliwić zalogowanie się po tym momencie. Zostaną również wysłane wiadomości rozgłoszeniowe, aby ostrzec zalogowanych użytkowników, że system ma się zamknąć.
Musisz wziąć pod uwagę te różnice, aby zdecydować, którego użyć.
shutdown 18:00
uruchamia proces w twojej powłoce, który czeka”. Co jeśli wylogujesz się wcześniej?nohup
czydisown
cokolwiek innego, jeśli wylogowanie normalnie zabije uruchomione procesy w tle. Różne systemy mogą mieć różne ustawienia domyślne. (Zakładam, że naprawdęsudo shutdown
nadal działa proces, a raczej sygnalizującyinit
uruchomienie wyłącznika czasowego. Ten ostatni może być tym, co się dzieje, ale ostatnio tego nie sprawdzałem. Och, ale @JdeBP ma; zobacz tę odpowiedź )at
aby działałocron
zamiastatd
?A teraz systemowa odpowiedź.
Jeśli masz CentOS 7, masz systemowy system operacyjny i odpowiedź jest inna.
at 18:00 shutdown now
nadal planuje za pośrednictwemat
podsystemu, ale toshutdown
polecenie, podobnie jak to, które wywołujesz bezpośrednioshutdown 18:00
, jest inne. To właściwiesystemctl
program systemowy .systemctl
robi rzeczy inaczej.Po pierwsze,
systemctl
wysyła zaplanowane żądanie zamknięcia do przetworzenia przez demona, podobnie jak wat
przypadku. Jest to jednak systemowy demon, a konkretnielogind
(systemd-shutdownd
demon został usunięty z systemd w maju 2015 r., Którego zmiana odtąd przeniknęła do późniejszych mniejszych wersji CentOS 7), a nieat
podsystem.systemctl
odczytuje wewnętrzny protokół z (ogólnosystemowym) brokerem Desktop Bus, który z kolei się komunikujelogind
.Podobnie jak w
at
przypadku, nie mashutdown
procesu odliczającego i odradzającegowall
wiadomości. Można się więc wylogować, a to nie wpłynie na harmonogram, a anulowanie nie jest tak proste, jak zwykłe przerwanie / zabicie pierwszego planu sesji logowania. Tak jak zat
.Nadal są wiadomości, w przeciwieństwie do
at
przypadku, ale są one wysyłane przezlogind
. Również w odróżnieniu odat
przypadku, zaplanowane zadanie nie utrzymuje się podczas ponownego uruchamiania systemu, więc faktyczne zamknięcie anuluje zaplanowane. W systemie plików znajduje się plik, ale pod nim/run/systemd/shutdown
znajduje się pamięć trwała.Kolejne różnice polegają na tym, że może być tylko jedno zaplanowane zamknięcie na raz, podczas gdy można przesłać wiele
at
zadań, a Zestaw zasad zastosuje reguły doshutdown
uruchamiania w kontekście sesji bez logowania jakoat
zadanie, które jest inne niż reguły zastosowane doshutdown
uruchomienia w kontekst sesji logowania. Ten ostatni może być bardziej liberalny, pozwalając (powiedzmy) nieuprzywilejowanemu użytkownikowi, który jest zalogowany do aktywnej sesji logowania, aby zamknąć system.Dalsza lektura
źródło