Có thể dừng một lệnh tắt máy?


23

Giả sử bạn vừa nhập lệnh shutdown -h now(hoặc một cái gì đó tương đương), thực tế bạn có thể làm gì không (nếu bạn đủ nhanh) để ngăn máy tắt?


Khi bạn gọi shutdown -h now, tôi tin rằng bạn mất quyền truy cập dòng lệnh ngay lập tức tương tự như halt -pvậy nên bạn không thể làm được gì nhiều.
Ken

@Ken: trên Ubuntu và Centos được kết nối qua putty, dòng lệnh vẫn khả dụng trong vài giây.

Tại sao nói "ngay bây giờ" nếu bạn không có nghĩa là "ngay bây giờ"?
Fred Nurk

Câu trả lời:


22

Bạn có thể chạy shutdown -cđể hủy bỏ tắt máy đang chạy.


1
Ban đầu không tin, nhưng đúng vậy. Cụ thể hơnctrl+c
Ken

2
@Ken: shutdown -c và [Ctrl] + [c] hoàn toàn khác nhau. shutdown -c là một lệnh hủy bỏ việc tắt máy theo lịch trình trước đó (thậm chí "ngay bây giờ" được lên lịch theo nghĩa này --- nhưng việc hủy bỏ có ngăn cản việc khởi động lại hay không là một cuộc đua trong trường hợp đó). [Ctrl] + [c] sẽ khiến thiết bị đầu cuối của bạn tạo SIGINT (tín hiệu ngắt) cho bất kỳ quá trình nào hiện đang được gắn vào nó. Điều này có thể hoạt động trên một lệnh tắt máy đang chạy nhưng điều đó khá bất tiện cho câu hỏi của bạn.
Jim Dennis

1
@Jim Dennis: Tôi biết sự khác biệt giữa ctrc+cshutdown -c. Nhưng với tốc độ của -now tùy chọn thay vì anh chị em theo lịch trình của nó, ctrl+csẽ là con đường nhanh nhất đến điểm cuối đó. Tôi không tin rằng bạn có thể ngăn chặn sự tắt máy vô thường, thậm chí còn ngạc nhiên hơn khi bạn có thể làm gián đoạn nó, nhưng rõ ràng là bạn có thể, nhưng đó là một cuộc đua như bạn đã nêu.
Ken

13

Nếu bạn đủ nhanh, bạn có thể đưa ra một init 2(hoặc bất kỳ runlevel nào bạn muốn) và điều đó có thể sẽ dừng việc tắt máy. Bất cứ điều gì liên quan đến việc giết lệnh tắt máy sẽ thất bại vì lệnh chạy quá nhanh

Tôi đã thử điều này với kịch bản bên dưới và thậm chí nó không đủ nhanh để dừng tắt máy

#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"

Broadcast message from iain@iain-ubuntu
        (/dev/pts/0) at 16:50 ...

The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown

Trường hợp tương tác

shutdown -h now
init 2 

hệ thống ở lại.


1

Từ trang người dùng FreeBSD:

Việc tắt máy theo lịch trình có thể bị hủy bằng cách hủy quá trình tắt máy (SIGTERM nên đủ).

Vì vậy, killall shutdownhoạt động trên BSD khi tắt máy theo lịch trình (ví dụ shudown -h +5).

Tôi không nghĩ việc hủy bỏ ngay lập tức ( shutdown -h now) trong kịch bản thực tế là khả thi .


0

giả sử, bạn đã gửi tin nhắn khởi động lại hoặc tắt máy cho tất cả các thiết bị đầu cuối với mục đích bảo trì rằng "máy chủ sẽ khởi động lại hoặc tắt máy cho mục đích bảo trì trong vòng 10 phút"

Loại lệnh này có thể hủy bỏ.

chỉ cần nhấn Ctrl+C

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.