Làm cách nào để chạy tập lệnh khi tạm dừng / tiếp tục? - Sony VAIO Ubuntu 12.04


12

Câu hỏi: Làm thế nào để gán tập lệnh chạy khi chọn tùy chọn tạm dừng trên menu nguồn?

Bối cảnh:
Tôi có một máy tính xách tay Sony VAIO với card đồ họa AMD Radeon. Tôi muốn có thể vô hiệu hóa / kích hoạt card đồ họa rời. Tôi không có vấn đề gì trong việc này nhưng nó gây ra vấn đề khi tạm dừng và tiếp tục từ việc đình chỉ.

Khi phiên được nối lại từ quá trình tạm dừng (với DPU rời rạc bị tắt), quạt sẽ quay không kiểm soát được, điều tôi muốn làm là chỉnh sửa tập lệnh tạm dừng hoặc gán tập lệnh mới cho tùy chọn tạm dừng trên menu nguồn. Điều này là để tôi có thể kích hoạt lại GPU trước khi tạm dừng. Menu nguồn

EDIT: Sau một số nghiên cứu tôi nghĩ rằng nó có liên quan đến các tập tin trong /etc/pm/sleep.d/?

Nếu tôi đặt một tập lệnh tùy chỉnh vào đó thì nó có được chạy khi tạm dừng và tiếp tục từ việc tạm ngưng không?

Làm cách nào để phân biệt trong tập lệnh giữa tạm dừng / tiếp tục?

Câu trả lời:


16

Bạn đúng rồi. Bạn phải viết một kịch bản và lưu nó vào /lib/systemd/system-sleep/(kể từ năm 2015 systemd hãy quan tâm đến điều đó, trước đó là /etc/pm/sleep.d/). Sự khác biệt giữa đình chỉ và tiếp tục được đưa ra như một tham số cho tập lệnh:

#!/bin/bash

case "$1" in
    suspend)
        # executed on suspend
        ;;
    resume) 
        # executed on resume
        ;;
    *)
        ;;
esac

Nếu bạn cũng muốn làm điều đó cho ngủ đông, các đối số sẽ là hibernatethaw.


Tôi đã thấy điều này trong các kịch bản khác và đã tự hỏi về các yêu cầu cụ thể cho một kịch bản như vậy. Cảm ơn bạn :)
danielcooperxyz

Xin chào, đã thử điều này trên Dell 5570 của tôi chạy Ubuntu 14.04 để làm cho nó bật bàn di chuột của tôi, nếu tôi tắt nếu tắt trước khi tạm dừng. vì một số lý do, lệnh tp_id=( )xinput list | grep -i touchpad | awk '{ print $7 }' | sed 's/id=//'() không trả về id, trong khi lệnh này không hoạt động từ dòng lệnh. Bạn có thể thấy bất kỳ lý do tại sao nó sẽ không? Đối với các mục đích khác, kịch bản của bạn hoạt động tuyệt vời. Cảm ơn!
Leo Simon

Xin lỗi, trong nhận xét trước đó, tôi đã cố gắng đưa backticks vào đoạn kịch bản, nhưng ngôn ngữ minimarkdown đã đánh bại tôi. () có nghĩa là được thay thế bằng backticks
Leo Simon

@LeoSimon Này Leo, các bình luận không phải là nơi thích hợp để thảo luận về câu hỏi tiếp theo như vậy. Tôi đề nghị bạn hỏi một câu hỏi hoàn toàn mới. Bằng cách này, nhiều người sẽ nhìn thấy nó và có thể giúp bạn :-)
André Stannek

2
Bạn có thể cần phải sử dụng /lib/systemd/system-sleep/thay thế.
SimonT
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.