Systemd อ่าน / etc / pm / …หรือไม่


14

ระบบที่ใช้systemdอ่านและดำเนินการกับสคริปต์มี/etc/pm/sleep.d/หรือไม่?

ฉันเริ่มที่จะสรุปคำตอบคือsystemdไม่สนใจสคริปต์เหล่านี้ หากเป็นจริงการเปลี่ยนคืออะไร

ปรับปรุง: รัฐสคริปต์สามารถเพิ่มไปยังman systemd-sleep /lib/systemd/system-sleep/โดยมีรายละเอียดไม่เพียงพอสำหรับฉัน แต่ฉันพยายามปรับเปลี่ยนของตัวอย่างเช่นวิกิพีเดีย Arch/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

ความตั้งใจของฉันคือการรีสตาร์ทผู้จัดการเครือข่ายหลังจากทำงานต่อเพราะบางครั้งมันไม่ทำงาน

ดูเหมือนจะไม่ได้ทำสิ่งที่ฉันต้องการ


ฉันพบว่าสคริปต์ /etc/pm/sleep.d จะยังคงทำงานหากคุณพิมพ์sudo pm-suspendจาก cmdline เพียงแค่ systemd จะไม่ใช้มันจากเวิร์กโฟลว์ของมัน
Tomofumi

คำตอบ:


13

สคริปต์ใน/etc/pm/config.d|power.d|sleep.dจะถูกละเว้นภายใต้ systemd ต้องสร้างและเปิดใช้งาน systemd "unit" (service) แทน

ในการรีสตาร์ทเครือข่ายหลังจากที่ระบบดำเนินการต่อจากโหมดสลีปฉันสร้างไฟล์/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

sudo systemctl enable root-resume.serviceแล้วฉันจะเปิดใช้บริการกับ การเปิดใช้บริการจะสร้างลิงค์สัญลักษณ์สำหรับไฟล์/etc/systemd/system/suspend.target.wants/

ตรงกันข้ามกับman systemd-sleepไฟล์บริการที่อยู่ใน/lib/systemd/system-sleep/นั้นจะถูกละเว้น


ใช่นี่คือเหตุผลว่าทำไมสคริปต์ "รีสตาร์ทเครือข่ายหลังจากหยุดทำงานชั่วคราว" ไม่ทำงานสำหรับผู้ที่ใช้ ubuntu ที่มี systemd
neo1691

/etc/systemd/system/root-resume.serviceนี้ควรจะสร้างขึ้นเป็น คุณไม่ควรแก้ไขไฟล์ภายใต้ / lib เนื่องจากจัดการโดย package manager เพื่อหลีกเลี่ยง cruft และการแตกที่อาจเกิดขึ้นกับการอัพเกรด
hackel

2

/usr/lib/pm-utils/sleep.dไม่มีหรือในผู้ที่ แต่จะเรียกใช้สคริปต์ทั้งหมด (ไม่ใช่ไฟล์บริการ) /lib/systemd/system-sleep/ด้วยชุดบิตที่สามารถเรียกใช้งานได้

นี่เป็นตัวอย่างหนึ่งสำหรับการโทร PM-ประหยัดพลังงาน, /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 คือ "โพสต์" ในประวัติย่อ "pre" เป็นอย่างอื่น $ 2 ในทั้งสองกรณีมี "หยุดชั่วคราว", "จำศีล" หรือ "ไฮบริดสลีป"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.