2016-06-11 29 views
1

xセッションが終了する前にスクリプトをスリープ状態で実行する方法を見つけようとしています。 /etc/pm/sleep.dにスクリプトを保存しても機能しませんでした(存在しないxセッションに関連するエラーが返されました)。どのようなアイデアは、スクリプトを置くためにどこですか?コメントxsessionの開始時または終了時にスクリプトを実行する

[email protected] /etc/acpi $ cat 01_revert_kb_on_sleep 
#!/bin/bash 
touch ~/Desktop/touchfile_my_script_acpi 
case "$1" in 
hibernate|suspend) 
sh -c "/home/king/Desktop/Scripts/rotate_desktop normal; /home/king/Desktop/Scripts/misc/my_keyboard on" 2> ~/Desktop/revert_kb_error_log.txt ;; 
#thaw|resume) 

[email protected] /etc/acpi $ ls 
total 1MB 
drwxr-xr-x 3 root root 1MB Jun 11 23:36 . 
drwxr-xr-x 163 root root 1MB Jun 11 23:41 .. 
-rwxr-xr-x 1 root root 1MB Jun 11 23:36 01_revert_kb_on_sleep 

[email protected] /etc/acpi $ ps -ef| grep acpid 
root  1070  1 0 23:41 ?  00:00:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket 
king  3499 2574 0 23:52 pts/2 00:00:00 grep --colour=auto acpid 
+0

私はACPIがあなたの望むものだと確信しています。 'acpid'が実行されていることを確認し、あなたのスクリプトを'/etc/acpi/... 'ディレクトリに置くことができます。 –

+0

私は '/ etc/acpi /'にスクリプトを入れてから、コンピュータを再起動してxsessionを再起動させました。出力は全くありませんでした。何か不足していますか? – Rilcon42

+0

申し訳ありませんが、私はあなたの質問を誤解している可能性があります。 xセッションが終了する前に「スリープ状態でスクリプトを実行する」と言う。だから、あなたはそれを眠りにつけたいのですか?またはXセッションが終了する前に? –

答えて

1

ステップ1.

に応じて

更新。 acpiサービスを有効にして開始します。

b。 acpi_listenコマンドを実行し、コンピュータをさまざまな方法でスリープ状態にしてください(電源ボタンを押し、蓋を閉じるなど)

c。上記の操作を行うと、どのイベントがトリガーされるのかを調べることができます。私の場合、彼らは次の通りであった:button/lid LID closebutton/sleep SBTN 00000080 00000000

ステップ2.

。以下のファイルを作成します/etc/acpi/events/my_events

event=(button/sleep SBTN|button/lid LID close) 
action=/etc/acpi/my_script.sh 

あなたのイベントとevent=ライン内のイベントを代入します。

b。以下のファイルを作成します/etc/acpi/my_script.sh

#!/bin/sh 
/home/king/Desktop/Scripts/rotate_desktop normal 
/home/king/Desktop/Scripts/misc/my_keyboard on 

NB。 Xセッションにアクセスするには、スクリプトの前にexport DISPLAY=:0を追加する必要があります。

NB2:スクリプトはrootのユーザー資格情報で実行されます。ユーザーの資格情報を使用して実行するには、次の操作を行います。

sudo -u king /home/king/Desktop/Scripts/rotate_desktop normal 
sudo -u king /home/king/Desktop/Scripts/misc/my_keyboard on 

c。ファイル/etc/acpi/my_script.shを実行可能にする:

chmod +x /etc/acpi/my_script.sh 

d。 acpiサービスを再起動します。

ステップ3.共有して楽しんでください。

関連する問題