Systemd / etc / pm /… yazıyor mu?


14

systemdOkuma ve yürütme komut dosyaları kullanan sistemler içeriyor /etc/pm/sleep.d/mu?

systemdBu komutları görmezden geldiği sonucuna varıyorum . Eğer bu doğruysa bunun yerine ne geçer?

Güncelleme: man systemd-sleepdurum komut dosyalarının eklenebileceğini belirtir /lib/systemd/system-sleep/. Ayrıntılar benim için yetersizdi ama bir Arch wiki örneğinde değişiklik yapmayı denedim ve oluşturdum /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

Amacım devam ettikten sonra ağ yöneticisini yeniden başlatmaktır çünkü bazen çalışmıyor.

Bu istediğimi yapmıyor gibi görünüyor.


Cmdd'den yazarsanız /etc/pm/sleep.d betiklerinin hala çalıştırılacağını gördüm sudo pm-suspend. Sadece systemd onu iş akışından kullanmayacak.
Tomofumi

Yanıtlar:


13

/etc/pm/config.d|power.d|sleep.dİçindeki komut dosyaları systemd altında yok sayılır. Bunun yerine bir systemd "birimi" (hizmet) oluşturulmalı ve etkinleştirilmelidir.

Sistem uyku modundan devam ettikten sonra ağları yeniden başlatmak için dosyayı oluşturdum /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

Sonra servisi ile etkinleştirdim sudo systemctl enable root-resume.service. Hizmeti etkinleştirmek, içindeki dosya için sembolik bir bağlantı oluşturur/etc/systemd/system/suspend.target.wants/

Yerleştirilen man systemd-sleephizmet dosyalarının aksine /lib/systemd/system-sleep/yoksayılır.


Evet, tam da bu nedenle "askıya alındıktan sonra ağı yeniden başlat" komut dosyalarının sistemd ile ubuntu çalıştıran insanlar için çalışmamasının nedeni buydu.
neo1691

Bu olarak oluşturulmalıdır /etc/systemd/system/root-resume.service. / Lib altında dosyaları hiçbir zaman paket yöneticisi tarafından yönetildiği için değiştirmemelisiniz.
hackel

2

Hayır /usr/lib/pm-utils/sleep.d. Ancak /lib/systemd/system-sleep/çalıştırılabilir bitler ayarlanmış tüm komut dosyalarını (hizmet dosyalarını değil) çalıştırır.

İşte pm-powersave'i çağırmak için değiştirilmiş bir örnek /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 özgeçmişte "post", aksi takdirde "pre" dır. Her iki durumda da $ 2, "askıya alma", "hazırda bekletme" veya "karma uyku" içerir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.