Jaka jest różnica między zamknięciem 18:00 a zamknięciem 18:00?

30

at 18:00 shutdown nowi shutdown 18:00czy rozpoczynają tę samą usługę? Czy działają w ten sam sposób?

Yang
źródło

Odpowiedzi:

48

at 18:00 shutdown nowtworzy zadanie „at”, które jest wykonywane w określonym czasie przez atdemona lub może crondemona, w zależności od systemu.

shutdown 18:00uruchamia 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:00utworzy /run/nologinplik 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ć.

wurtel
źródło
1
shutdown 18:00uruchamia proces w twojej powłoce, który czeka”. Co jeśli wylogujesz się wcześniej?
RonJohn
1
@RonJohn: To zależy, czy użyłeś, nohupczy disowncokolwiek 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 shutdownnadal działa proces, a raczej sygnalizujący inituruchomienie 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ź )
Peter Cordes
Czy naprawdę jest możliwe skonfigurowanie, ataby działało cronzamiast atd?
terdon
3
Jest moderator diamentów, który nie przeczytał How to Ask . (-: Przekonasz się, że to pytanie zostało zadane cztery lata temu na unix.stackexchange.com/questions/147643 .
JdeBP
„Zostaną również wysłane wiadomości rozgłoszeniowe, aby ostrzec zalogowanych użytkowników, że system ma się zamknąć.” Powiedziałbym, że jest to najważniejsza różnica w serwerach, które mają wielu użytkowników, chciałbym podkreślić to bardziej w tej odpowiedzi.
JiK
23

A teraz systemowa odpowiedź.

Jeśli masz CentOS 7, masz systemowy system operacyjny i odpowiedź jest inna.

at 18:00 shutdown nownadal planuje za pośrednictwem atpodsystemu, ale to shutdownpolecenie, podobnie jak to, które wywołujesz bezpośrednio shutdown 18:00, jest inne. To właściwie systemctlprogram systemowy . systemctlrobi rzeczy inaczej.

Po pierwsze, systemctlwysyła zaplanowane żądanie zamknięcia do przetworzenia przez demona, podobnie jak w atprzypadku. Jest to jednak systemowy demon, a konkretnie logind( systemd-shutdownddemon został usunięty z systemd w maju 2015 r., Którego zmiana odtąd przeniknęła do późniejszych mniejszych wersji CentOS 7), a nie atpodsystem. systemctlodczytuje wewnętrzny protokół z (ogólnosystemowym) brokerem Desktop Bus, który z kolei się komunikuje logind.

Podobnie jak w atprzypadku, nie ma shutdownprocesu odliczającego i odradzającego wallwiadomoś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 z at.

Nadal wiadomości, w przeciwieństwie do atprzypadku, ale są one wysyłane przez logind. Również w odróżnieniu od atprzypadku, 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/shutdownznajduje 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 atzadań, a Zestaw zasad zastosuje reguły do shutdownuruchamiania w kontekście sesji bez logowania jako atzadanie, które jest inne niż reguły zastosowane do shutdownuruchomienia 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

JdeBP
źródło