Wyłączenie systemu Linux za 30 sekund?

8

Proste pytanie: jakich parametrów można użyć do zamknięcia komputera z systemem Linux / OSX w 30 sekund? Zawsze korzystałem z systemu Windows, do którego chodziłbym, shutdown -s -t 30ale parametry są inne. Sprawdziłem to tutaj, ale pozwoli ci to wyłączyć komputer tylko o określonej godzinie (np. 8:00), a nie o określonej godzinie.

icnhzabot
źródło

Odpowiedzi:

8

W OS X można zamknąć w ciągu jednej minuty, używając następującego polecenia:

sudo shutdown -h +1

AFAIK, przy pomocy tego polecenia nie można podać sekund zamiast minut.

Możesz również uruchomić ponownie, używając -rzamiast -h.


EDYTOWAĆ:

Jak wspomniałeś w komentarzu, możesz programowo dodać opóźnienie, a następnie natychmiast zamknąć system

shutdown -h now

Pamiętaj jednak, że to polecenie będzie wymagało dostępu do konta root.

Austin
źródło
meh Więc nie używaj miejsc po przecinku. Myślę, że to w porządku, zastanawiałem się, ponieważ próbuję pracować na wieloplatformowej aplikacji Java, która może zamknąć komputer. Więc mógłbym po prostu spać przez 30 sekund, zanim natychmiast się wyłączę. Ale czy sudo shutdown -hzamknąłby komputer bez zamierzonego opóźnienia?
@icnhzabot sudo shutdown -h nownatychmiast zamknąłby komputer bez ostrzeżenia.
Austin
ok dzięki. więc dla dostępu do roota powinienem zrobić sudo shutdown -h nowdobrze?
icnhzabot
@icnhzabot To nie zadziała w przypadku automatycznego skryptu / programu, ponieważ monituje użytkownika o podanie hasła administratora w wierszu polecenia. Musisz uruchomić skrypt jako root i po prostu zadzwonić shutdown -h now. Jeśli potrzebujesz pomocy, powinieneś zadać nowe pytanie (zakładając, że nie możesz znaleźć odpowiedzi w innym miejscu). Nie zapomnij też zaznaczyć tutaj najlepszej odpowiedzi jako „zaakceptowanej”, jeśli odpowiedziała na twoje pytanie.
Austin
3

Korzystając z podstawowych połączeń, nie widzę sposobu na zrobienie tego w kilka sekund, ale wygląda na to, że możesz to zrobić w kilka minut:

time Time is the time at which shutdown will bring the system down and
     may be the word now (indicating an immediate shutdown) or specify
     a future time in one of two formats: +number, or yymmddhhmm,
     where the year, month, and day may be defaulted to the current
     system values.  The first form brings the system down in number
     minutes and the second at the absolute time specified.

Innymi słowy:

shutdown -h +1

Jeśli chcesz go wyłączyć za 1 minutę.


źródło
wiesz, czy to zadziała z .5?
Wystąpił błąd - -ropcja dotyczy ponownego uruchomienia, a nie zamknięcia. Musisz użyć -hdo zamknięcia.
Austin
@Austin ugh, naprawiłem to wstawianie.
3

Jak wskazano, polecenie

sudo shutdown -h +1

Dodaje jedną minutę.

Jeśli chcesz to zrobić w kilka sekund lub godzin lub coś bardzo konkretnego, możesz zrobić coś takiego:

shutdown -h `date --date "now + 60 seconds"`

EDYCJA: Powyższe nie działa już w nowszych wersjach Ubuntu. Dziękujemy za zwrócenie uwagi na @zitrax. Mój błąd, masz rację.

Ale nadal możesz to zrobić, ale wydaje się, że jest to najbliższa minuta.

sudo shutdown -h `date --date "now + 10 minutes" "+%H:%M"`

Co jest nieco bezcelowe, gdy parametr + m jest łatwiejszy do wpisania ... aaaaaa

Matt H.
źródło
Nie działa (przynajmniej na Linuksie), daje to czas w innym formacie niż oczekiwano.
Zitrax,
@Zitrax, tylko dlatego, że nie działało w twoim przypadku, nie oznacza, że ​​nie działa we wszystkich wersjach Linuksa. Chciałbym również, abyście zauważyli, że backstick „różni się od pojedynczego cytatu”. Zgaduję, że właśnie dlatego to nie zadziałało. To absolutnie działa we wszystkich wersjach Ubuntu od co najmniej 10.04. Ponieważ Ubuntu opiera się na Debianie, również na tym będzie działać. Bardziej konstruktywne może być powiedzenie „nie działa na…”, a raczej głosowanie w dół i ogólne oświadczenie. Linux to ogólny termin, nie jest wersją. Ale myślę, że źle napisałeś. Spróbuj ponownie.
Matt H
1
Spróbowałem ponownie na moim komputerze domowym i tam też nie działa. Wiem, jak działają backticks. Więc próbowałem na Ubuntu 13.10 i Kubuntu 13.10. Czy to możliwe, że używam innej lokalizacji? Wyjście date --date "now + 60 seconds"dla mnie to 22 lutego 2014 21:25:03 CET i jeśli użyję tego wraz z zamknięciem, wypisze „niepoprawną wartość czasu” (przetłumaczone na angielski). Więc twoje stwierdzenie, że napisana wersja absolutnie działa we wszystkich wersjach ubuntu, jest po prostu błędne. Gdybym określić format jak do tej pory działa jednak tak: date --date "now +60 seconds" +%H:%M.
Zitrax
Próbowałem przejść na angielski, ale to też nie działało. Więc nie jestem pewien, dlaczego to działa dla ciebie.
Zitrax
Musi być twoją wersją polecenia zamknięcia systemu. Wygląda na to, że wersja dostarczana z Ubuntu może być inna. Jest autorem Scott Remnant z Conanical. Musi być tak, że akceptuje szerszy zakres wartości wejściowych daty. Działa dla mnie i co najmniej 3 innych, którzy głosowali.
Matt H