Linux shutdown dalam 30 detik?

8

Pertanyaan sederhana: params apa yang dapat digunakan untuk mematikan komputer yang menjalankan Linux / OSX dalam 30 detik? Saya selalu menjalankan Windows, ke mana saya akan pergi shutdown -s -t 30tetapi parameternya berbeda. Saya sudah mencarinya di sini tetapi hanya akan membiarkan Anda mematikan komputer pada waktu tertentu (seperti jam 8:00) daripada dalam jumlah detik tertentu.

icnhzabot
sumber

Jawaban:

8

Di OS X Anda dapat mematikan dalam satu menit menggunakan perintah berikut:

sudo shutdown -h +1

AFAIK, tidak mungkin untuk menentukan detik alih-alih menit dengan perintah ini.

Anda juga dapat reboot dengan menggunakan -rbukan -h.


EDIT:

Seperti yang Anda sebutkan dalam komentar Anda, Anda dapat menambahkan penundaan secara terprogram, kemudian matikan sistem dengan segera

shutdown -h now

Tetapi perhatikan bahwa perintah itu akan membutuhkan akses root.

Austin
sumber
meh. Jadi tidak menggunakan desimal. Saya kira itu tidak apa-apa, saya bertanya-tanya karena saya mencoba untuk bekerja pada aplikasi Java lintas-platform yang dapat mematikan komputer. Jadi saya bisa membuatnya tidur selama 30 detik sebelum mematikan segera. Tetapi apakah akan sudo shutdown -hmematikan komputer tanpa penundaan yang disengaja?
@icnhzabot sudo shutdown -h nowakan segera mematikan komputer tanpa peringatan.
Austin
Ok terima kasih. jadi untuk akses root saya harus melakukan yang sudo shutdown -h nowbenar?
icnhzabot
@icnhzabot Itu tidak akan berfungsi untuk skrip / program otomatis karena meminta pengguna untuk kata sandi administrator mereka di baris perintah. Anda harus menjalankan skrip Anda sebagai root dan panggil saja shutdown -h now. Jika Anda butuh bantuan untuk itu, Anda harus membuat pertanyaan baru (dengan asumsi Anda tidak dapat menemukan jawabannya di tempat lain). Juga, jangan lupa untuk menandai jawaban terbaik di sini sebagai "diterima" jika itu menjawab pertanyaan Anda.
Austin
3

Menggunakan panggilan dasar, saya tidak melihat cara untuk melakukannya dengan detik, tetapi sepertinya Anda bisa melakukannya dengan menit:

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.

Dengan kata lain:

shutdown -h +1

Jika Anda ingin mematikannya dalam 1 menit.


sumber
Anda tahu apakah itu akan berhasil dengan 0,5?
Ada kesalahan di sini - -ropsi untuk reboot, bukan shutdown. Anda harus menggunakan -huntuk mematikan.
Austin
@Austin ugh, perbaiki inline itu.
3

Seperti yang ditunjukkan, perintah

sudo shutdown -h +1

Tambahkan satu menit.

Jika Anda ingin melakukannya dalam hitungan detik atau jam atau sesuatu yang sangat spesifik, Anda dapat melakukan sesuatu seperti:

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

EDIT: Di atas tidak lagi berfungsi pada Ubuntu yang lebih baru. Terima kasih telah menunjukkannya di @zitrax. Kesalahan saya Anda benar.

Tetapi Anda masih bisa melakukannya tetapi tampaknya mungkin sampai menit terdekat.

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

Yang agak tidak ada gunanya ketika parameter + m lebih mudah untuk mengetik .... ahhh oh well.

Matt H
sumber
Tidak berfungsi (setidaknya di linux), ini memberi waktu dalam format lain dari yang diharapkan.
Zitrax
@Zitrax, hanya karena itu tidak berfungsi dalam kasus Anda tidak berarti itu tidak bekerja di semua rasa Linux. Saya ingin Anda juga mencatat backtick `berbeda dengan satu kutipan '. Saya kira inilah sebabnya itu tidak berhasil untuk Anda. Ini benar-benar berfungsi di semua versi Ubuntu sejak setidaknya 10,04. Dan karena Ubuntu didasarkan pada Debian, ia akan bekerja juga. Mungkin lebih konstruktif untuk mengatakan "Tidak berfungsi ...." daripada memilih dan membuat pernyataan. Linux adalah istilah umum, ini bukan versi. Tapi saya pikir Anda salah mengetik. Coba lagi.
Matt H
1
Saya mencoba lagi di mesin rumah saya dan tidak berfungsi di sana. Saya tahu cara kerja backticks. Jadi saya sudah mencoba di Ubuntu 13.10 dan Kubuntu 13.10. Bisa jadi saya menggunakan lokal yang berbeda? Output dari date --date "now + 60 seconds"untuk saya adalah 22 Februari 2014 21:25:03 CET dan jika saya menggunakannya bersama dengan shutdown itu mencetak "nilai waktu tidak valid" (diterjemahkan ke bahasa Inggris). Jadi pernyataan Anda bahwa versi yang Anda tulis benar-benar berfungsi di semua versi ubuntu sama sekali salah. Jika saya menentukan format untuk tanggal kerjanya meskipun, seperti ini: date --date "now +60 seconds" +%H:%M.
Zitrax
Sudah mencoba beralih ke bahasa Inggris, tetapi tidak berhasil. Jadi saya tidak yakin mengapa itu bekerja untuk Anda.
Zitrax
Harus versi perintah shutdown Anda. Sepertinya versi yang datang dengan Ubuntu mungkin berbeda. Ini ditulis oleh Scott Remnant dari Conanical. Pasti menerima rentang nilai input tanggal yang lebih luas. Berfungsi untuk saya dan setidaknya 3 orang lainnya yang terpilih.
Matt H