Bagaimana cara mengetahui kapan komputer dalam keadaan diam?

8

Saya memiliki komputer yang hanya digunakan beberapa waktu, dan saya bertanya-tanya apakah ada cara untuk mematikannya setelah beberapa saat tidak aktif.

Inilah bagian yang sulit, jika saya hanya berpikir untuk mematikannya ketika GUI diam maka saya pikir itu akan jauh lebih mudah, tetapi saya mencoba untuk memastikan saya tidak memotong siapa pun yang secara aktif menggunakan mesin melalui SSH juga. Komputer yang dimaksud adalah Debian 5.0.

Apakah ada cara mendeteksi apakah mesin idle, seperti tidak ada yang menggunakan GUI dan tidak ada yang menggunakan mesin melalui SSH? Jika koneksi SSH terbuka, tetapi tidak digunakan secara aktif, maka komputer harus mempertimbangkan idle itu.

Jeff Welling
sumber
Haruskah ini dipindahkan ke stackoverflow mungkin?
Jeff Welling
pertanyaannya tidak terlalu pemrograman-ish, dan mungkin ada jawaban yang cocok yang juga tidak.
jmtd
Seorang teman menyarankan DBUS, tetapi dalam 5 menit singkat saya di Google, sepertinya tidak akan memperhatikan koneksi ssh, menganggur atau tidak. Saya akan lebih baik jika saya tidak mendapat informasi .. perlu terus mencari ketika saya bangun.
Jeff Welling
1
Mengapa Anda ingin mematikan komputer Linux? :-)
amphetamachine
@amphetamachine Hemat daya. Mengurangi output termal di ruang cluster besar. Kami memiliki dua kelompok Linux tempat saya bekerja; satu 69 mesin, 43 lainnya: memungkinkan manajemen daya telah membuat perbedaan yang terukur terhadap panas kamar (yang terlalu panas) dan tagihan listrik.
jmtd

Jawaban:

2
who -q

Akan menunjukkan siapa, dan berapa banyak pengguna yang memiliki tty terbuka (yaitu di konsol, melalui X, ssh, telent) tetapi tidak akan menampilkan pengguna yang terhubung melalui pop, http dll

symcbean
sumber
Apakah ada cara untuk mengatakan tentang apa perintah terakhir yang mereka jalankan (PID, untuk memeriksa apakah masih berjalan) dan kapan dijalankan? Apakah Anda pikir itu dapat dilakukan dengan beberapa perubahan pada bash prompt?
Jeff Welling
Anda harus lebih spesifik tentang apa yang Anda maksudkan. Bagaimana jika mereka memulai progam setid sebelum logout - apakah Anda menganggap sesi mereka masih aktif? Apa yang tidak bisa Anda dapatkan dari bash history?
symcbean
1

gdmSaya gnome-power-managerdapat mendeteksi ini dan menangguhkan mesin dengan tepat. untuk GNOME2 Coba

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

dan

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

sebagai root. Anda mungkin perlu memulai ulang gdmagar pengaturan dapat berlaku. (jumlahnya adalah detik jadi 600 adalah 10 menit).

di bawah GNOME3, ada sepasang gsettingskunci yang serupa (di atas diam-diam gagal).

Jika Anda tidak menjalankan GNOME, Anda dapat memeriksa sumber gnome-power-manageruntuk mencari tahu bagaimana itu membangun idle-ness.

jmtd
sumber
1
gdm / gnome-power-managerdapat mendeteksi koneksi ssh idle?
Jeff Welling
yang menganggur? Tidak. Yang aktif? Saya percaya begitu. Pertanyaan Anda menyarankan Anda tidak ingin memotong orang yang menggunakan mesin melalui ssh secara aktif . Jika Anda tidak ingin mereka menangguhkan bahkan dengan koneksi idle ssh, harap perbaiki pertanyaan Anda.
jmtd
Sebenarnya itu terdengar persis seperti yang saya inginkan! Saya akan memeriksanya, terima kasih! Setelah saya memverifikasi bahwa ini akan berfungsi untuk keperluan saya, saya akan memilih jawaban Anda :)
Jeff Welling
1

Coba perintah xprintidle untuk mendapatkan waktu idle dalam milidetik.

Coc
sumber