コンピュータが再開されたときに実行されるスクリプトをどこに置くか?


8

コンピュータがメモリサスペンドから復帰したら、画面をロックする必要があります。

そこで、次のスクリプトを/usr/lib/pm-utils/sleep.dとに配置しようとしましたが、/etc/pm/sleep.d実行されませんでした。

#!/bin/sh

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

PSそれpm-suspendはそうではありませんpm-hibernate

編集

systemdサービスも試したが、運が悪かった:

# /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

そして私も電話しましたsystemctl enable resume@.serviceが、vlockはまだ呼ばれていませんでした。


3
実行されませんか?記録するか、次のようなことをしてみませんかecho executed script >> /tmp/resume
Ulrich Dangel

回答:


2

私の知る限りでExecStartは、実行可能ファイルへのフルパスが必要です。

で試してみてExecStart=/usr/bin/vlock -ansください/etc/systemd/system/resume@.service



1

あなたはあなた自身のフックを作成しようとしていますよね?私はpm-utils(以下のリンク)でArch Linuxのドキュメントを読んでいます。最初にこれらのことを確認します。

  • スクリプト名(ドキュメントのスキームに従って、2桁で始まる)
  • スクリプトの場所:/etc/pm/sleep.dが適切な場所
  • スクリプトモード:chmod + x /etc/pm/sleep.d/66scriptname

これらすべてが正しいと確信している場合は、スクリプト自体を検討してください。

これについて私が読んでいるドキュメントへのリンクは次のとおりです。https//wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

あなたのスクリプトは、そこに示されているものとはかなり異なります。/ bin / bashの代わりに/ bin / shを呼び出します。$ 1あたりの二重引用符を使用していますが、使用していません。オプションを組み合わせても、組み合わせません。これのすべてがなければならない権利、大丈夫?多分sh対bashを除いて。

どのようにいくつかのパッティングについてロガーをまたはデバッグしてからスクリプトを始めるされているかどうかをログをチェックするためにそこに文をエコー。そして、もしそうなら、それはどこまで進んでいるか。


systemdはpm-utilsで動作しますか?よくわかりません;-)
デイジー

0

私はを実行してすべてのディレクトリを見つけました"sudo strace pm-hibernate 2>/root/myfile.log"。または、pm-hibernateをpm-suspendに置き換えることができます。しばらくすると、マシンの電源が切れます。次に、電源を入れて再開すると、myfile.logが読み込まれ、その中にすべてのスクリプト、構成、ログファイルがアクセスまたは書き込まれます。

私のFedora 20の場合:

/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

等および他のいくつかのディレクトリ。

特定のバージョンの特定のディストリビューションを手助けしてください(Fedora 20はsystemd btwを使用しています)。

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