Làm thế nào để vô hiệu hóa tắt máy để một quá trình quan trọng không thể bị gián đoạn?


10

Cách đơn giản nhất để vô hiệu hóa hoặc tạm thời tạm dừng khởi động lại / tắt máy khi một quy trình quan trọng đang chạy là gì? Quá trình này mất quá nhiều thời gian để kết thúc và không thể tạm dừng / tiếp tục, vì vậy tôi muốn tránh tắt máy tính trong khi nó đang chạy. Nó được chạy từ cron nên trừ khi tôi tự kiểm tra các tiến trình đang chạy, tôi sẽ không biết rằng nó đang chạy. Cảm ơn.


5
Có thể trùng lặp: SO: Tạm thời ngăn linux ngừng hoạt động , gợi ý câu trả lời về các cấp độ khác nhau có thể được thực hiện, ví dụ như tập lệnh shell hoặc quản lý năng lượng của môi trường máy tính để bàn.
sr_

Tôi không nghĩ rằng câu trả lời đó đủ cụ thể mà không cần một lời giải thích nào về runlevels hoặc liên kết đến lời giải thích. Nó không có trong U & L SE. Tôi có thể hỏi bản phân phối và phiên bản nào bạn đang sử dụng không?
bsd

Thay vì sửa đổi quy trình tắt máy, hãy viết một trình bao bọc để công việc biểu thị nó đã hoàn thành, gửi thư hoặc chạm vào một tệp. Kiểm tra hoàn thành công việc, sau đó chạy tắt máy. (cron gửi kết quả đầu ra của công việc cho chủ sở hữu, nhưng điều đó có thể được điều chỉnh).
bsd

Câu trả lời:


1

Chạy which shutdownđể xem đường dẫn đến chương trình tắt máy. Bạn có thể đổi tên tập tin, mặc dù tôi khuyên bạn nên chống lại nó.

Một phương pháp khác (an toàn hơn). Sử dụng một bí danh: alias shutdown=' ' Một cái gì đó như thế này là đảo ngược hơn. Nếu bạn đang cố gắng ngăn chặn tắt máy từ tất cả người dùng, hãy thêm bí danh trên toàn cầu.


Tôi đang nghĩ đến việc sử dụng một bí danh, bây giờ tôi chỉ cần viết kịch bản của mình. Cảm ơn!
zang3tsu

Điều gì về các lệnh khác như tạm dừng hoặc poweroff. Bạn có cần tạo bí danh '/ đổi tên chúng không?
mintyfreshpenguin

17

Đối với các hệ thống mới hơn với systemd, điều này đã được giải quyết bằng systemd-inhibit. Ví dụ về cách sử dụng:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

Sau đó, nếu người dùng cố gắng tắt máy, nó sẽ không được phép trừ khi bị ép buộc.

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

Có vấn đề này mặc dù: chạy nó như root không tương tác sẽ bỏ qua các khóa. github.com/systemd/systemd/issues/2680
Alicia

Tôi nghĩ rằng bạn đã đọc sai báo cáo lỗi đó, họ đang nói về việc chạy poweroffnhư root không tương tác
Ferrybig

Làm thế nào tôi đọc sai báo cáo lỗi chính xác? : S
Alicia

2

Vô hiệu hóa các lệnh như "shutdown / restart / poweroff / halt / hostname" trong các máy chủ nhiệm vụ quan trọng

chmod 0 /sbin/shutdown

sau đó nếu bạn cần sử dụng nó, hãy quay lại chmod 0755.


1
Thế còn halt, poweroffsystemctl poweroff?
Martin Uting

1

Tôi sẽ vô hiệu hóa lệnh trong tệp / etc / sudoers để chỉ root mới có thể thực thi nó.

trong / etc / sudoers

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

và khi tôi cố chạy lệnh:

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

bạn có thể giải thích câu trả lời của bạn? tắt máy có thể không được chỉ định rõ ràng trong / etc / sudoers.
Archemar

Chắc chắn, tôi đã chỉnh sửa câu trả lời với một lời giải thích tốt hơn. Chúc mừng
vmule

0

Tôi muốn ngăn người dùng cục bộ tắt máy tính xách tay trong quá trình nâng cấp. Vô hiệu hóa thiết bị đầu vào là cách tốt nhất để đi. Đối với tôi nó là đủ để vô hiệu hóa chuột, nhưng bàn phím cũng có thể bị vô hiệu hóa.

Tất nhiên có một nhược điểm, máy tính không thể được sử dụng trong giai đoạn này.

Vô hiệu hóa đầu vào Bàn phím & Chuột trên unix (dưới X)


-1

shutdownvề mặt kỹ thuật cũng là một ứng dụng mà bạn có thể gỡ bỏ. Chạy đi which shutdown. whichlà một lệnh chỉ cho bạn đường dẫn của ứng dụng. Trong trường hợp của tôi đầu ra là /sbin/shutdown. Đó là một tập tin để bạn có thể làm rm shutdown. Hoặc nếu bạn muốn vô hiệu hóa nó tạm thời sao chép nó, thay đổi tên và xóa tệp gốc.

Bạn phải có đủ quyền nếu bạn muốn làm rm shutdown. Nó chỉ đọc, do đó tại sao bạn có thể gặp lỗi. Hãy thử loại bỏ nó roothoặc nếu cần thiết hãy thử sử dụng lệnh rm shutdown.


3
Tại sao -rcờ? Bạn sẽ không cần nó cho một tập tin, và nếu bạn gõ nhầm một cái gì đó, thảm họa xảy ra.
MadTux
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.