Đặt script chạy ở đâu khi máy tính được nối lại?


8

Tôi cần khóa màn hình khi máy tính của tôi bị đánh thức do treo bộ nhớ,

Vì vậy, tôi đã cố gắng đặt đoạn script sau /usr/lib/pm-utils/sleep.d/etc/pm/sleep.d, nhưng nó không bao giờ được thực thi,

#!/bin/sh

case "$1" in
    hibernate|suspend)
        ;;
    thaw|resume)
        vlock -ans
        ;;
    *) exit $NA
        ;;
esac

PS Không pm-suspendphải vậy pm-hibernate.

BIÊN TẬP

Đã thử dịch vụ systemd, không có may mắn:

# /etc/systemd/system/resume@.service
[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=root
Type=simple
ExecStart=vlock -ans

[Install]
WantedBy=suspend.target

Và tôi cũng gọi systemctl enable resume@.service, vlock không được gọi yên.


3
Bạn có chắc chắn nó sẽ không được thực thi? Bạn có thể cố gắng đăng nhập nó hoặc làm một cái gì đó nhưecho executed script >> /tmp/resume
Ulrich Dangel

Câu trả lời:


2

AFAIK ExecStartmuốn một con đường đầy đủ để thực thi.

Hãy thử với ExecStart=/usr/bin/vlock -anstại của bạn/etc/systemd/system/resume@.service



1

Bạn đang cố gắng tạo ra cái móc của riêng mình, phải không? Tôi đang đọc tài liệu Arch Linux trên pm-utils (liên kết bên dưới) và tôi sẽ kiểm tra những điều này trước:

  • tên tập lệnh (bắt đầu bằng hai chữ số, tuân theo lược đồ trong tài liệu)
  • vị trí tập lệnh: /etc/pm/s ngủ.d là đúng nơi
  • chế độ tập lệnh: chmod + x /etc/pm/s ngủ.d / 66scriptname

Nếu bạn chắc chắn rằng bạn đã có tất cả những quyền đó, thì hãy xem xét chính kịch bản.

Đây là một liên kết đến các tài liệu tôi đang đọc về điều này: https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

Kịch bản của bạn không giống như kịch bản họ thể hiện ở đó. Bạn gọi / bin / sh thay vì / bin / bash. Bạn sử dụng hai lần khoảng $ 1 và họ không. Bạn kết hợp các tùy chọn và họ không. Tất cả những điều nên được OK, phải không? Ngoại trừ có thể là sh so với bash.

Làm thế nào về việc đưa một số câu lệnh logger hoặc echo vào đó để gỡ lỗi và sau đó kiểm tra nhật ký để xem nếu tập lệnh của bạn đang bắt đầu. Và nếu có, nó sẽ đi được bao xa.


Systemd có hoạt động với pm-utils không? Tôi không chắc về điều đó ;-)
daisy

0

Tôi đã tìm ra tất cả các thư mục bằng cách thực hiện "sudo strace pm-hibernate 2>/root/myfile.log"hoặc bạn có thể thay thế pm-hibernate bằng pm-treo. Sau một thời gian máy sẽ tắt nguồn. Sau đó, khi bạn khởi động lại / tiếp tục lại, hãy đọc myfile.log và bên trong nó là tất cả các tập lệnh, cấu hình, tệp nhật ký được truy cập / ghi.

Đối với Fedora 20 của tôi, họ là:

/usr/lib64/pm-utils/pm-functions
/usr/lib64/pm-utils/defaults
/usr/lib64/pm-utils/module.d
/etc/pm/config.d
/etc/pm/pm-suspend.config.d
/var/run/pm-utils/locks/pm-suspsnd.lock
/var/run/pm-utils/pm-suspend/storage/parameters

vv và một số thư mục khác.

Hãy tự giúp mình với bản phân phối cụ thể của phiên bản cụ thể (Fedora 20 đang sử dụng systemd btw).

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.