Linux tắt máy sau 30 giây?


8

Câu hỏi đơn giản: thông số nào có thể được sử dụng để tắt máy tính chạy Linux / OSX trong 30 giây? Tôi đã luôn chạy Windows, nơi tôi sẽ đến shutdown -s -t 30nhưng các thông số khác nhau. Tôi đã xem nó ở đây nhưng nó sẽ chỉ cho phép bạn tắt máy tính vào một thời điểm cụ thể (như 8:00) chứ không phải trong một vài giây cụ thể.

Câu trả lời:


8

Trong OS X, bạn có thể tắt máy sau một phút bằng lệnh sau:

sudo shutdown -h +1

AFAIK, không thể chỉ định giây thay vì vài phút với lệnh này.

Bạn cũng có thể khởi động lại bằng cách sử dụng -rthay vì -h.


BIÊN TẬP:

Như bạn đã đề cập trong bình luận của mình, bạn có thể thêm một độ trễ theo chương trình, sau đó tắt hệ thống ngay lập tức với

shutdown -h now

Nhưng lưu ý rằng lệnh đó sẽ yêu cầu quyền truy cập root.


ồ Vì vậy, không sử dụng số thập phân. Tôi cho rằng điều đó ổn, tôi đã tự hỏi bởi vì tôi đang cố gắng làm việc trên một ứng dụng Java đa nền tảng có thể tắt máy tính. Vì vậy, tôi chỉ có thể làm cho nó ngủ trong 30 giây trước khi tắt ngay lập tức. Nhưng sẽ sudo shutdown -htắt máy tính mà không có sự chậm trễ cố ý?

@icnhzabot sudo shutdown -h nowsẽ tắt máy tính ngay lập tức mà không có cảnh báo.
Austin

được rồi cảm ơn. Vì vậy, để truy cập root tôi nên làm gì sudo shutdown -h nowphải không?
icnhzabot

@icnhzabot Điều đó sẽ không hoạt động đối với một kịch bản / chương trình tự động vì nó nhắc người dùng nhập mật khẩu quản trị viên của họ tại dòng lệnh. Bạn sẽ phải chạy tập lệnh của mình dưới quyền root và chỉ cần gọi shutdown -h now. Nếu bạn cần giúp đỡ với điều đó, bạn nên đặt một câu hỏi mới (giả sử bạn không thể tìm thấy câu trả lời ở nơi khác). Ngoài ra, đừng quên đánh dấu câu trả lời hay nhất ở đây là "được chấp nhận" nếu nó trả lời câu hỏi của bạn.
Austin

3

Sử dụng các cuộc gọi cơ bản, tôi không thấy cách nào để thực hiện trong vài giây, nhưng có vẻ như bạn có thể thực hiện trong vài phút:

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.

Nói cách khác:

shutdown -h +1

Nếu bạn muốn tắt nó trong 1 phút.


Bạn có biết nếu nó sẽ làm việc với .5?

Có một lỗi ở đây - -rtùy chọn là để khởi động lại, không phải tắt máy. Bạn phải sử dụng -hđể tắt máy.
Austin

@Austin ugh, đã sửa lỗi nội tuyến đó.

3

Như đã chỉ ra, lệnh

sudo shutdown -h +1

Thêm một phút.

Nếu bạn muốn làm điều đó trong vài giây hoặc vài giờ hoặc một cái gì đó rất cụ thể, bạn có thể làm một cái gì đó như:

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

EDIT: Phần trên không còn hoạt động trên các bản dựng Ubuntu mới hơn. Cảm ơn bạn đã chỉ ra rằng @zitrax. Sai lầm của tôi là bạn đúng.

Nhưng bạn vẫn có thể làm điều đó nhưng dường như có thể đến phút gần nhất.

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

Điều này hơi vô nghĩa khi tham số + m dễ gõ hơn .... ahhh oh.


Không hoạt động (ít nhất là trên linux), điều này mang lại thời gian ở định dạng khác so với dự kiến.
Zitrax

@Zitrax, chỉ vì nó không hoạt động trong trường hợp của bạn không có nghĩa là nó không hoạt động trong tất cả các hương vị của Linux. Tôi muốn bạn cũng lưu ý rằng backtick `khác với một trích dẫn '. Tôi đoán đây là lý do tại sao nó không làm việc cho bạn. Điều này hoàn toàn hoạt động trong tất cả các phiên bản Ubuntu kể từ ít nhất 10.04. Và vì Ubuntu dựa trên Debian, nó cũng sẽ hoạt động trên đó. Có thể mang tính xây dựng hơn khi nói "Không hoạt động ...." thay vì bỏ phiếu và đưa ra tuyên bố về chăn. Linux là một thuật ngữ chung, nó không phải là một phiên bản. Nhưng tôi thực sự nghĩ rằng bạn đã gõ sai. Thử lại.
Matt H

1
Tôi đã thử lại trên máy tính ở nhà và nó cũng không hoạt động. Tôi biết backticks hoạt động như thế nào. Vì vậy, tôi đã thử trên Ubuntu 13.10 và Kubfox 13.10. Có thể là tôi sử dụng một miền địa phương khác? Đầu ra từ date --date "now + 60 seconds"tôi là lor 22 feb 2014 21:25:03 CET và nếu tôi sử dụng nó cùng với tắt máy, nó sẽ in "timevalue không hợp lệ" (dịch sang tiếng Anh). Vì vậy, tuyên bố của bạn rằng phiên bản bạn đã viết hoàn toàn hoạt động trong tất cả các phiên bản của ubfox đơn giản là sai. Nếu tôi chỉ định định dạng cho đến ngày nó hoạt động, như thế này : date --date "now +60 seconds" +%H:%M.
Zitrax

Đã thử chuyển sang ngôn ngữ tiếng Anh, nhưng nó cũng không hoạt động. Vì vậy, tôi không chắc chắn tại sao nó làm việc cho bạn.
Zitrax

Phải là phiên bản của bạn của lệnh tắt máy. Có vẻ như phiên bản đi kèm với Ubuntu có thể khác. Nó được tác giả bởi Scott Remnant từ Conanical. Nó phải được chấp nhận một phạm vi rộng hơn của các giá trị đầu vào ngày. Làm việc cho tôi và ít nhất 3 người khác đã nâng cao.
Matt H
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.