Làm thế nào để tắt máy tính sau khi hoàn thành nhiệm vụ?


8

Tôi thường bắt đầu tải xuống trước khi tôi đi học.
Tôi nên sử dụng lệnh nào để tự động thực hiện các lưu cần thiết và tắt máy tính sau khi hoàn thành một tác vụ cụ thể?
(Nói, sau khi cài đặt các bản cập nhật hoặc sau khi tải xuống một tệp lớn.)

Tôi cũng đã đăng chéo này tại unix.stackexchange .


1
Nếu bạn tải xuống torrent, thì một số trong số chúng có tùy chọn tắt máy sau khi hoàn thành. đảm bảo rằng hoàn thành có nghĩa là 100% và không gieo hạt. Và nếu bạn đang thực hiện nó trên dòng lệnh, chỉ cần thêm && tạm dừng vào cuối lệnh để tự động dừng PC. && có nghĩa là thực thi sau.
theTuxRacer

Gần như tất cả các câu trả lời đều đúng, imho. Càng nhiều chi tiết bạn cung cấp về loại tải xuống và chương trình bạn sử dụng, chúng tôi càng có thể chính xác :)
Pitto

Tôi nghĩ rằng câu trả lời dựa trên quá trình trong bài đăng chéo của bạn là một trong những câu trả lời hay nhất và linh hoạt nhất tôi từng thấy. unix.stackexchange.com/a/65060/21070 Bạn có thể sử dụng `ps -elf | grep <somthing_related_to_task> để xác định PID sẽ hết hạn vào cuối quá trình.
TafT

Câu trả lời:


8

Tôi biết rằng điều này không trả lời chính xác câu hỏi của bạn nhưng bạn cũng có thể đặt thời gian dựa trên thời gian tức là nếu bạn nghĩ rằng quá trình tải xuống của bạn sẽ hoàn tất sau 2 giờ, bạn có thể chỉ cần đưa ra lệnh:

shutdown -h +120

8

Để thực hiện một lần để cho phép bạn tắt máy mà không cần mật khẩu:

Mở một dòng lệnh và gõ:

sudo visudo 

Trong Tệp mở ra, thêm dòng sau vào cuối:

yourusername ALL=NOPASSWD: /sbin/halt

Sau đó thoát khỏi trình chỉnh sửa và bảo vệ nó ( Ctrl+ X).

Bây giờ bạn có thể tắt máy tính của mình khỏi dòng lệnh, ví dụ sau khi bạn tải xuống một cái gì đó:

wget UrlOfTheFileYouWantToDownload && sudo halt

4
Để đảm bảo rằng wget được trả về mà không có lỗi, hãy thay thế ";" với "&&".
David Rivers


3

Các câu trả lời khác là đúng, nhưng thiếu một cái gì đó:

wget UrlOfTheFileYouWantToDownload ; sudo halt

đấu với

wget UrlOfTheFileYouWantToDownload && sudo halt

Cái thứ hai sẽ chỉ tắt máy tính nếu wgettrả về thành công. Cái đầu tiên sẽ dừng lại dù wgettrả về thành công hay thất bại.


2

bạn có thể sử dụng trình quản lý tải xuống hoặc máy khách torrent để tắt máy tính sau khi hoàn tất hoặc giả sử bạn đang chống phân mảnh đĩa, bạn có thể nhấp vào tắt máy sau khi thực hiện có sẵn trong hầu hết các phần mềm


2

Tôi đoán nó phụ thuộc rất nhiều vào cách bạn đã 'tải xuống'.

Nếu bạn đang nói về một bản cập nhật apt-get, hãy nâng cấp trình tự, khi root bạn xâu chuỗi các lệnh của bạn lại với nhau bằng cách sử dụng && (trình tự chỉ tiếp tục nếu không có lỗi)

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

Nếu bạn đang nói về việc tải xuống (ví dụ: sử dụng wget) [một lần nữa, hãy xâu chuỗi các lệnh lại với nhau bằng cách sử dụng ký hiệu &&, đảm bảo rằng các lệnh thực hiện theo thứ tự chỉ khi lệnh trước đó thành công]

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

Nếu quá trình tải xuống của bạn được thực hiện bởi một máy khách đồ họa (gui), thì nó sẽ phụ thuộc vào các cơ chế của máy khách đó để thực thi các tập lệnh sau khi tải xuống thành công.


2
Các lệnh đó sẽ không hoạt động vì sudo su -bắt đầu một shell mới và các lệnh sau dấu chấm phẩy không được thực thi cho đến khi shell mới kết thúc.
loevborg

Nhận xét công bằng. đã sửa đổi các hướng dẫn để chỉ ra rằng chúng là một chuỗi lệnh riêng biệt.
Finley

1

Cá nhân tôi thấy việc sử dụng gedit để thiết lập bản gốc dễ dàng hơn

yourusername ALL=NOPASSWD: /sbin/halt    

kể từ khi sudo visudotôi bối rối và không hiển thị dòng cuối cùng rõ ràng

Vì vậy, tôi đã sử dụng

sudo -H gedit /etc/sudoers

sau đó kết thúc với một trang rõ ràng (với tôi)

# 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

Chỉ cần nghĩ rằng tôi sẽ đề cập rằng trong trường hợp bất cứ ai khác cũng có một chút bối rối


1

Thay vì thay đổi quyền khi tắt máy, bạn có thể làm như sau:

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

Những gì nó làm là chạy một dấu nhắc bash là root thực thi các mục trong danh sách được trích dẫn duy nhất và sau đó thoát. Phần thưởng của phương pháp này là Ubuntu sẽ quên sudoxác thực ban đầu của bạn sau một khoảng thời gian (tùy thuộc vào khoảng thời gian chờ được đặt - 15 phút theo mặc định) và ai đó đi qua máy của bạn chỉ có thể dừng lệnh hiện tại, không chạy lệnh mới. Ngoài ra, đối với mọi người nói sử dụng su, hãy thử:

sudo -s

Điều gì xảy ra nếu mạng ngừng hoạt động trong một thời gian ngắn và apt-get không thực hiện được công việc của mình?
Quamis

1
Tôi cho rằng bạn vẫn muốn tắt máy. Nếu bất kỳ giai đoạn nào của lệnh trong -c không thành công, các lệnh khác sẽ tiếp tục khi tôi sử dụng dấu chấm phẩy thay vì && (bất kỳ lệnh nào được xâu chuỗi bằng && sẽ chỉ hoạt động nếu lần lượt từng thành công).
Canxi

0

Tôi không nghĩ bạn có thể làm điều đó ... Không có cách nào bạn có thể biết khi một ứng dụng cụ thể hoàn thành việc của mình.

Tôi đã từng làm sudo su; sleep 3600; halt;


Tại sao bỏ phiếu xuống?
Quamis

Ai đó có thể không đồng ý với phần 'không có cách nào để biết'?
belacqua
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.