Tôi đã đập đầu vào điều này khá lâu rồi. Nó liên quan đến câu hỏi này . Tôi muốn tìm hiểu chính xác điều gì xảy ra khi tôi chọn tắt hộp Linux của mình khỏi GUI. Điều này dường như là kém (nếu có) tài liệu.
Lý tưởng nhất, tôi hy vọng cho một câu trả lời bất khả tri và hệ điều hành. Chặn rằng, tôi quan tâm đến trường hợp cụ thể của Mandriva 2010.1 và Debian 6.x (Bóp) và 7.0 (Wheezy) đều đang chạy Gnome. (Nếu bạn đang chú ý, có, đó là Gnome 2 và Gnome 3)
Về cơ bản, tôi muốn biết lệnh / script / chuỗi script nào được bắt đầu khi tôi nhấn "Shutdown" hoặc "Restart" để tôi có thể sửa đổi hành vi của chúng. Một số bài viết trên diễn đàn tôi đã xem xét đề xuất hack/etc/polkit-1/*
nhưng cấu trúc thư mục này chỉ là một bộ xương trên hộp Debian (Squeeze) của tôi, ví dụ.
Có ai giúp được không?
BIÊN TẬP
Những gì tôi đã cố gắng cho đến nay
- Thay thế tập
shutdown
tin thực thi bằng một tập lệnh của riêng tôi. Điều này không hoạt động: khi tôi nhấnshutdown
Gnome đăng xuất mà không thực thi tập lệnh của mình. - Đã thử chỉnh sửa menu Gnome 2. Không có niềm vui: các tùy chọn "Tắt máy", "Đăng xuất" và "Màn hình khóa" không xuất hiện trong trình chỉnh sửa menu.
- Nhìn vào
/usr/share/menu
, không có gì hữu ích ở đó.
Con đường có thể cho giải pháp
strace
ing các tùy chọn GUI (điều này thậm chí có thể?)- Nhìn
shutdown
mã nguồn của - Nhìn vào
gnome-session
mã nguồn của
Cập nhật
Theo nhận xét của tôi về câu trả lời dưới đây, tôi đã xem xét polkit
các hành động bên dưới /usr/share/polkit-1/actions/
và tìm thấy (trong tệp org.freedesktop.consolekit.policy
) một hành động được gọi là org.freedesktop.consolekit.system.stop-multiple-users
ném thông điệp
System policy prevents stopping the system when other users are logged in
Tôi đang nghĩ (do org.freedesktop.*
quy ước đặt tên) rằng đây là một loại tín hiệu được gửi đến DM thông qua D-BUS. Hơn nữa, thông báo này xuất hiện khi cố gắng tắt đồ họa trong khi người dùng khác đăng nhập, vì vậy cơ chế kích hoạt nó phải là cùng một cơ chế được kích hoạt khi "Tắt máy" hoặc "Tắt nguồn" được chọn từ GUI.
Bất cứ ai có thể xác nhận / bác bỏ? Có khả năng bằng cách nào đó chặn tín hiệu này hoặc sửa đổi nó?
/etc/init.d/rc.local
để gọi một tập lệnh khi bị dừng .