Làm cách nào để ngăn chặn tạm dừng Gnome trong khi tôi hoàn thành công việc biên dịch


7

Tôi đang cố gắng xây dựng một kernel tùy chỉnh cho máy của mình, việc này mất nhiều thời gian để xây dựng (như mong đợi). Có thể ngăn máy tính để bàn Gnome của tôi tạm dừng máy cho đến khi quá trình biên dịch hoàn tất và sau đó tạm dừng (giả sử tôi rời khỏi máy trong 30 phút như bình thường).

Tôi không muốn vô hiệu hóa vĩnh viễn tạm dừng (điều này dễ thực hiện thông qua bảng điều khiển cài đặt hệ thống nhưng lãng phí điện năng) mà chỉ có thể chỉ định (thông qua PID?) Công việc biên dịch của tôi và tạm dừng máy tính khi kết thúc.


Bạn đã kiểm tra xem nó có bị treo trong khi biên dịch không? Điều đó sẽ thực sự kỳ lạ ... Nó chỉ nên tạm dừng khi máy tính không hoạt động trong một khoảng thời gian được khai báo - đó không phải là trường hợp khi bạn biên dịch kernel.
rozcietrzewiacz

1
Vâng. Chắc chắn đình chỉ giữa biên dịch và sau đó tiếp tục lại khi tôi trở lại bàn phím và đánh thức nó. AFAIK Gnome chỉ sử dụng sự hiện diện của tôi trên bàn phím / chuột để xác định xem máy tính có đang được sử dụng hay không.
davefiddes

Bạn đang sử dụng Gnome nào? Gnome 2 hay 3?
fpmurphy

Gnome 3.2 trên F16
davefiddes

Câu trả lời:


8

Bây giờ tôi chưa có thời gian cho tất cả các chi tiết, nhưng hãy xem Câu hỏi thường gặp của Trình quản lý năng lượng Gnome " Làm cách nào để ứng dụng của tôi dừng máy tính tự động tạm dừng " chỉ ra các cuộc gọi Inhibit()UnInhibit()DBus.

Một cảnh báo : nếu quá trình gọi Inhibit()thoát ra, sự ức chế đã kết thúc - dbus-senddo đó, trong tập lệnh Shell sẽ không thực hiện được , nhưng một số tập lệnh bao bọc (ví dụ như trong Python) là cần thiết.

( Chỉnh sửa Bài đăng trên blog này chứa thêm một chút thông tin, cũng là một sơ đồ Python có thể hữu ích.)


Có vẻ như tôi sẽ cần phải viết một chút trăn để thực hiện các thao tác ức chế và theo dõi quá trình xây dựng cần thiết. Hừm. Cảm ơn đã đào lên các chi tiết.
davefiddes

4

Bạn có thể tắt hoàn toàn thời gian không hoạt động.

Ví dụ: để tắt thời gian chờ chỉ dành cho nguồn AC, hãy chạy

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0

Cá nhân tôi nghĩ rằng nó hoàn toàn ngu ngốc khi hết thời gian không hoạt động để tạm dừng máy tính, trong khi nó bật nguồn AC, theo mặc định và không có tùy chọn cho người bình thường để vô hiệu hóa điều này.


0

Bạn có thể gói lệnh make trong trình bao của mình để nó tạm thời hủy kích hoạt tính năng tự động sửa lỗi gnome.

Trước tiên, bạn cần tìm hiểu cách kích hoạt / hủy kích hoạt autosuspend thông qua một dòng lệnh. Điều này có thể thực hiện được thông qua gconftool-2. Một nghiên cứu nhỏ và hack với trình soạn thảo gconf sẽ giúp ích (Tôi thực sự không thể giúp về điều đó, tôi không sử dụng gnome).

Sau đó, bọc cái này trong các hàm trong vỏ của bạn:

disable_autosuspend()
{
    ...
}

enable_autosuspend()
{
    ...
}

Sau đó, chỉ cần sử dụng trình bao bọc sau:

test -z $MAKEPRG && export MAKEPRG=$(which make)
make()
{
    disable_autosuspend
    $MAKEPRG $@
    enable_autosuspend
}

Biến MAKEPRG ở đây để giữ đường dẫn đến thực hiện. Bài kiểm tra ở đây trong trường hợp bạn muốn tải lại tập tin RC của mình.

Bạn cũng có thể tạm dừng qua dbus ngay sau khi quá trình biên dịch dừng:

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

2
Ồ, tốt, bằng cách sử dụng liên kết được cung cấp bởi sr_, bạn có thể viết các trình bao bọc enable / eac_autosuspend ... Chỉnh sửa oh không, quá trình gọi quá trình ức chế () không được thoát ...
user48678
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.