Bagaimana cara mematikan komputer setelah tugas selesai?

8

Saya biasanya memulai unduhan sebelum pergi ke sekolah.
Perintah mana yang harus saya gunakan untuk secara otomatis melakukan penyelamatan yang diperlukan dan mematikan komputer setelah tugas tertentu selesai?
(Katakan, setelah menginstal pembaruan, atau setelah mengunduh file besar.)

Saya juga mengirim silang ini di unix.stackexchange .

El Burro
sumber
1
Jika Anda mengunduh torrent, maka beberapa dari mereka memiliki opsi untuk mematikan setelah selesai. pastikan penyelesaian berarti 100% dan bukan penyemaian. Dan jika Anda melakukannya di sepanjang baris perintah, cukup tambahkan tanda && di akhir perintah untuk menghentikan PC secara otomatis. && berarti mengeksekusi setelah.
theTuxRacer
Hampir semua jawabannya benar, ya. Semakin banyak perincian yang Anda berikan tentang jenis unduhan dan program yang Anda gunakan, semakin kami bisa akurat :)
Pitto
Saya pikir proses berdasarkan jawaban dalam postingan silang Anda adalah salah satu yang terbaik dan paling fleksibel yang pernah saya lihat. unix.stackexchange.com/a/65060/21070 Anda mungkin dapat menggunakan `ps -elf | grep <somthing_related_to_task> untuk mengidentifikasi PID yang akan kedaluwarsa pada akhir proses.
TafT

Jawaban:

8

Saya tahu ini tidak menjawab pertanyaan Anda tetapi Anda juga dapat membuatnya berdasarkan waktu, yaitu jika Anda berpikir bahwa unduhan Anda akan selesai dalam 2 jam, Anda cukup mengeluarkan perintah:

shutdown -h +120
binW
sumber
8

Untuk melakukannya sekali, Anda dapat mematikan mesin tanpa kata sandi:

Buka baris perintah dan ketik:

sudo visudo 

Di File yang terbuka tambahkan baris berikut di akhir:

yourusername ALL=NOPASSWD: /sbin/halt

Kemudian keluar dari editor dan simpan ( Ctrl+ X).

Sekarang Anda dapat mematikan komputer dari baris perintah, mis. Setelah Anda mengunduh sesuatu:

wget UrlOfTheFileYouWantToDownload && sudo halt
AK76
sumber
4
Untuk memastikan bahwa wget dikembalikan tanpa kesalahan, ganti ";" dengan "&&".
David Rivers
3

Untuk mematikan setelah pembaruan, Anda dapat menggunakan skrip python ini: http://kotbcorp.blogspot.com/2009/06/shutdown-after-update-in-ubuntu.html

Untuk mematikan setelah mengunduh saya menggunakan perintah ini:

wget http://somehwere.com/path/to/some.file && halt
aneeshep
sumber
2
Ingatlah bahwa haltmembutuhkan superuser privilleges, jadi Anda harus menjalankan sudo -ssebelum memasukkan perintah.
loevborg
3

Jawaban lain benar, tetapi melewatkan sesuatu:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs.

wget UrlOfTheFileYouWantToDownload && sudo halt

Yang kedua hanya akan mematikan komputer jika wgetberhasil kembali. Yang pertama akan berhenti jika wgetberhasil atau gagal.

David Oneill
sumber
2

Anda dapat menggunakan manajer unduhan atau klien torrent untuk mematikan pc setelah selesai atau seandainya Anda mendefrag hard disk Anda dapat mengklik pada shut down setelah selesai yang tersedia di sebagian besar perangkat lunak

FOSS DIVERSER
sumber
2

Saya kira itu sangat tergantung pada bagaimana Anda melakukan 'unduhan' Anda.

Jika Anda berbicara tentang pembaruan apt-get, perbarui urutan, sebagai root Anda merangkai perintah Anda menggunakan && (urutan hanya berlanjut jika tidak ada kesalahan)

sudo su -
apt-get update && apt-get upgrade && shutdown -h now

Jika Anda berbicara tentang pengunduhan (mis. Menggunakan wget) [lagi, merangkai perintah bersama menggunakan && notasi, memastikan bahwa perintah dijalankan hanya jika perintah sebelumnya berhasil]

sudo su -
wget -t0 -c http://somedownloadsite/path/file.foo && shutdown -h now

Jika unduhan Anda dilakukan oleh klien grafis (gui), maka itu akan tergantung pada mekanisme klien untuk mengeksekusi skrip setelah unduhan berhasil.

finley
sumber
2
Perintah-perintah itu tidak akan berfungsi karena sudo su -memulai shell baru dan perintah setelah titik koma tidak dieksekusi sampai shell baru berakhir.
loevborg
Komentar yang adil. telah memodifikasi instruksi untuk menunjukkan bahwa mereka adalah urutan perintah yang terpisah.
finley
1

Saya pribadi merasa lebih mudah menggunakan gedit untuk mengatur yang asli

yourusername ALL=NOPASSWD: /sbin/halt    

karena sudo visudomembingungkan saya dan tidak menunjukkan baris terakhir dengan jelas

Jadi saya menggunakan

sudo -H gedit /etc/sudoers

kemudian berakhir dengan halaman yang jelas (untuk saya)

# User privilege specification
root    ALL=(ALL:ALL) ALL


# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d
shantiq ALL=NOPASSWD: /sbin/halt

Hanya berpikir saya akan menyebutkan bahwa kalau-kalau ada orang lain yang agak bingung juga

shan
sumber
1

Alih-alih mengubah izin pada penutupan, Anda dapat melakukan hal berikut:

sudo bash -c 'apt-get update; apt-get dist-upgrade; shutdown -h now'

Apa yang dilakukan adalah menjalankan bash prompt sebagai root yang mengeksekusi item dalam daftar yang dikutip lalu berhenti. Bonus dari metode ini adalah bahwa Ubuntu akan melupakan sudootentikasi awal Anda setelah beberapa periode (tergantung pada periode batas waktu yang ditetapkan - 15 menit secara default) dan seseorang yang datang di mesin Anda hanya dapat menghentikan perintah saat ini, tidak menjalankan yang baru. Juga, untuk semua orang yang mengatakan untuk menggunakan su, coba:

sudo -s
Calcipher
sumber
bagaimana jika jaringan turun untuk waktu yang singkat dan apt-get gagal melakukan tugasnya?
Quamis
1
Saya akan berasumsi Anda masih ingin mematikan. Jika ada tahapan perintah di -c gagal yang lain akan berlanjut karena saya menggunakan titik koma alih-alih && (setiap perintah yang dirantai dengan && hanya akan berfungsi jika masing-masing berhasil pada gilirannya).
Calcipher
0

Saya tidak berpikir Anda bisa melakukan itu ... Tidak ada cara Anda bisa tahu kapan aplikasi tertentu selesai.

Dulu saya lakukan sudo su; sleep 3600; halt;

Quamis
sumber
mengapa suara turun?
Quamis
Seseorang mungkin tidak setuju dengan bagian 'tidak ada cara untuk mengetahui'?
belacqua