Bagaimana saya dapat secara otomatis mematikan sistem setelah waktu tertentu?

Jawaban:

49

Buka jendela terminal dan ketik:

sudo shutdown -h +60

dan ganti saja 60 dengan jumlah menit berapa pun yang ingin Anda ambil.

Info lebih lanjut di sini:

http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org/lessons/beginner/l5/lesson5a.html

Daniel
sumber
2
The -Pparameter (power off) tampaknya menjadi ide yang baik juga.
Htorque
Shutdown + m 60 tidak bekerja untuk saya. memberi saya pesan kesalahan dan mengatakan bahwa ada nilai waktu yang tidak valid.
NES
Saya pikir itu aneh ... seharusnya tidak menjadi "+ m 60", itu harus "+60" (atau mungkin lebih seperti "-h +60". Bagian bawah halaman ini tampaknya tahu cara kerjanya: linux.org/lessons/beginner/l5/lesson5a.html .
Daniel
"shutdown -P 1" - berfungsi dengan baik dan mematikan sistem dalam 1 menit, tidak perlu unit waktu.
n3rd
2
sebenarnya itu sudo ..... karena butuh root privilege
Shirish Herwade
8
  • Anda dapat menggunakan gshutdown Instal gshutdown
  • Setelah instalasi dapat ditemukan di bawah Applications-> Accessories-> GShutdown teks alternatif
  • Lihat juga metode ini .
karthick87
sumber
Adakah yang bisa mengatakan kepada saya mengapa mereka memilih?
karthick87
2
Saya tidak memilih. Tapi Gshutdown tidak berfungsi dengan baik di sini. Ketika saya memilih shutdown, bukannya log out pengguna?
NES
Saya juga, itu log keluar pengguna dan laptop beralih ke mode tidur
lewis4u
2

Karena topik abt mematikan PC setelah jangka waktu tertentu tidak aktif adalah diarahkan untuk topik ini, saya akan menjelaskan masalah ini di sini.

Saya menghabiskan banyak waktu untuk menyelesaikan masalah ini, jadi saya merasa berguna untuk membagikannya, untuk membuat masalah yang sama menjadi mudah bagi orang lain. Saya sudah mencoba program yang berbeda tetapi mereka tidak bekerja untuk saya, jadi saya menemukan menggunakan skrip pendek dengan cronjob solusi terbaik.

Pertama saya merujuk ke posting Shutdown Berwaktu - shutdown setelah 30 menit

Saya akan menyalinnya di bawah ini dan kemudian menjelaskan peningkatan untuk membuatnya berfungsi:

Instal xprintidle. Alat ini memberikan waktu idle pengguna.

sudo apt-get install xprintidle

Buat skrip autoshutdown.sh yang memeriksa waktu idle dan memerintahkan komputer untuk mematikan jika idle selama 30 menit.

idle=$(xprintidle)

if [ $idle -gt 1800000 ]; then
    shutdown -h now
fi

Buat cronjob untuk ini yang memeriksa dari waktu ke waktu jika sistem terlalu lama menganggur dan jika telah menganggur selama lebih dari 30 menit akan mematikan. Perhatikan bahwa cronjob harus dibuat untuk pengguna root.


Skrip ini perlu beberapa perbaikan agar berfungsi, seperti:

idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`

OUR_USER adalah pengguna yang kami rujuk untuk memeriksa waktu idle (bukan root)

DISPLAY=:0benar untuk satu tampilan desktop (jalankan envperintah untuk membaca DISPLAYdalam situasi Anda)

jika skrip dijalankan oleh OUR_USER, baris di atas dapat dikurangi:

idle=`env DISPLAY=:0 xprintidle 2>&1`

Topik ini dijelaskan di http://ubuntuforums.org/showthread.php?t=1069602

jika skrip dijalankan oleh OUR_USER, shutdownperintah harus didahului olehsudo

sudo shutdown -h now

Script saya dijalankan dari cron demi baris dalam file cron:

*/5 * * * * /home/OUR_USER/autoshutdown.sh 
  • setiap 5 menit
  • OUR_USER harus diganti seperti sebelumnya kepada pengguna yang kami rujuk.

Jika skrip tidak dijalankan oleh root, kita harus ingat untuk menambahkan baris:

ALL ALL=(ALL) NOPASSWD: /sbin/shutdown 

dalam file sudoers , jadi perintah shutdown tidak perlu kata sandi untuk dieksekusi.


Saya mencoba cronjobs tersebut pada 2 distro serupa Lubuntu 12.04.4 RC LXLE 32-bit ( http://www.lxle.net/ )

Dalam satu sistem ini hanya berfungsi menggunakan root cronjob yang diatur dalam file:

/ var / spool / cron / crontab / root


CAVEAT

Masalah lain adalah bahwa xprintidle dalam sistem saya telah memberikan nilai - nilai acak bagi saya dan terkadang secara logis tambahan. Hasil akhir - sistem saya biasanya mati setelah 20 menit mungkin, jika saya menetapkan nilai idle maks ke 30 menit. Saya pikir pelakunya adalah xscreensaver yang tidak berfungsi sebagaimana diatur oleh parameter yang dimasukkan.

Michał
sumber