Systemd có đọc / etc / pm / không?


14

Các hệ thống sử dụng systemdđọc và thực thi các tập lệnh trong /etc/pm/sleep.d/?

Tôi bắt đầu kết luận câu trả lời là systemdbỏ qua các tập lệnh này. Nếu điều này là đúng thì sự thay thế là gì?

Cập nhật: man systemd-sleepcác tập lệnh trạng thái có thể được thêm vào /lib/systemd/system-sleep/. Các chi tiết không đủ cho tôi nhưng tôi đã thử sửa đổi một ví dụ wiki Arch và tạo ra /lib/systemd/system-sleep/root-resume.service.

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=simple
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Ý định của tôi là khởi động lại trình quản lý mạng sau khi tiếp tục vì đôi khi nó không hoạt động.

Điều này dường như không được làm những gì tôi muốn.


Tôi thấy rằng các tập lệnh /etc/pm/s ngủ.d vẫn sẽ được chạy nếu bạn nhập sudo pm-suspendtừ cmdline. Chỉ cần systemd sẽ không sử dụng nó từ quy trình làm việc của nó.
Tomofumi

Câu trả lời:


13

Các tập lệnh trong /etc/pm/config.d|power.d|sleep.dđược bỏ qua dưới systemd. Thay vào đó, một "đơn vị" (dịch vụ) hệ thống phải được tạo và kích hoạt.

Để khởi động lại mạng sau khi hệ thống hoạt động trở lại, tôi đã tạo tập tin /lib/systemd/system/root-resume.service:

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Sau đó tôi kích hoạt dịch vụ với sudo systemctl enable root-resume.service. Kích hoạt dịch vụ sẽ tạo một liên kết tượng trưng cho tệp trong/etc/systemd/system/suspend.target.wants/

Trái ngược với man systemd-sleepcác tập tin dịch vụ được đặt trong /lib/systemd/system-sleep/được bỏ qua.


Vâng, chính xác đây là lý do tại sao các tập lệnh "khởi động lại mạng sau khi tạm ngưng" không hoạt động đối với những người chạy ubfox với systemd.
neo1691

Điều này nên được tạo ra như /etc/systemd/system/root-resume.service. Bạn không bao giờ nên sửa đổi các tập tin dưới / lib vì chúng được quản lý bởi trình quản lý gói, để tránh bị gián đoạn và các sự cố có thể xảy ra khi nâng cấp, chưa kể đến việc đơn giản hóa các bản sao lưu.
hackel

2

Không, cũng không phải những người trong /usr/lib/pm-utils/sleep.d. Nhưng nó chạy tất cả các tập lệnh (không phải tệp dịch vụ) /lib/systemd/system-sleep/với các bit thực thi được đặt.

Đây là một ví dụ để gọi pm-powersave, được sửa đổi từ /usr/lib/pm-utils/sleep.d/00powersave.

#!/bin/sh

# do not run pm-powersave on ARM during suspend; the 1.5 seconds that it takes
# to run it don't nearly compensate the potentially slightly slower suspend
# operation in low power mode
ARCH=`uname -m`

case $1 in
    pre)  [ "$ARCH" != "${ARCH#arm}" ] || pm-powersave false ;;          
    post) pm-powersave ;;
esac
exit 0

$ 1 là "bài" trong sơ yếu lý lịch, "trước" nếu không. $ 2 trong cả hai trường hợp có chứa "tạm ngưng", "ngủ đông" hoặc "ngủ lai".

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.