Systemdは/ etc / pm /…を読み取りますか?


14

システムでsystemd読み取りおよび実行スクリプトを使用してい/etc/pm/sleep.d/ますか?

私は答えがsystemdこれらのスクリプトを無視するという結論に達し始めています。これが正しい場合、代替品は何ですか?

更新:man systemd-sleep状態スクリプトをに追加できます/lib/systemd/system-sleep/。詳細は私には不十分でしたが、Arch wikiの例を修正して作成しました/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

私の意図は、ネットワークマネージャーが再開された後に再起動することです。

これは私がしたいことをしていないようです。


sudo pm-suspendcmdlineから入力すると、/ etc / pm / sleep.dスクリプトが実行されることがわかりました。ただsystemdはそのワークフローからそれを使用しません。
智文

回答:


13

/etc/pm/config.d|power.d|sleep.dsystemd ではスクリプトは無視されます。代わりに、systemd「ユニット」(サービス)を作成して有効にする必要があります。

システムがスリープから再開した後にネットワークを再起動するには、ファイルを作成しました/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/無視されます。


はい、まさにこれが、systemdでubuntuを実行しているユーザーに対して「一時停止後のネットワークの再起動」スクリプトが機能しなかった理由です。
neo1691

これはとして作成する必要があります/etc/systemd/system/root-resume.service。バックアップの簡素化は言うまでもなく、アップグレード時の問題や潜在的な破損を避けるために、/ libの下のファイルはパッケージマネージャーによって管理されるため、絶対に変更しないでください。
ハッケル

2

いいえ、また/usr/lib/pm-utils/sleep.d。ただし/lib/systemd/system-sleep/、実行可能ビットが設定された状態で(サービスファイルではなく)すべてのスクリプトを実行します。

から変更されたpm-powersaveを呼び出すための例を次に示し/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は再開時に「投稿」、それ以外は「前」です。どちらの場合も$ 2には、「suspend」、「hibernate」、または「hybrid-sleep」のいずれかが含まれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.