web-dev-qa-db-ja.com

LinuxMintがサスペンドから再開するたびにスクリプトを実行します

LinuxMintを実行しています。ログインするたびに実行される、マウスボタンを再マップするスクリプトがあります。ただし、コンピューターが一時停止すると、マウスボタンはデフォルトのマッピングに戻ります。

コンピューターが一時停止から復帰するたびに、スクリプトを再実行したいと思います。これどうやってするの?現在、「スタートアップアプリケーション」コントロールパネルからスクリプトを呼び出しています。

スクリプトのコピーを/etc/pm内のサブディレクトリに配置しようとしましたが、うまくいきませんでした。

編集:実際、私のコンピューターが一時停止から抜け出したとき、マウスのマッピングがリセットされていないことがあります。しかし、モニターをオフにしてから再びオンにすると(電源ボタンを使用して)、マウスのマッピングは常にリセットされています。どうすればこれを防ぐことができますか? (または、モニターがオンに戻ったときに実行されるように、スクリプトをどこに置くことができますか?)

2
Jeff

スクリプトが「機能しない」理由は、いくつかの理由による可能性があります。

  • スクリプトは実行可能ではありません。実行可能である必要があります(run chmod +xその上)。
  • システムが再起動すると、スクリプトはrootとして実行されます(私は思います)。ユーザーとして実行するには、次のような方法を試してください。
#!/ bin/bash

ケース「$ 1」
休止状態|一時停止)
Sudo -u USERNAME env DISPLAY =:0 zenity --info --text "do stuff on suspend" ;;
解凍|再開)
Sudo -u USERNAME env DISPLAY =:0 zenity --info --text "再開時に処理を行う"
;;
esac

(恥知らずに AskUbunt から盗まれました)。

明らかに、zenity呼び出しを、一時停止から再開するときに実行するアクションに置き換えることができます。 USERNAMEは、通常ログインしているユーザーである必要があります(これが大幅に変更されると、複雑になる可能性があります)。

3