3gモデムをインストールして実行しながら、Arch Linux
プロセスに必要ないくつかの手作業を排除したいと思います。したがって、udevルールを作成する必要があります。いくつかの試行錯誤の後、私は次の規則を思い出し、11-my-rule.rules
それらを配置しました/etc/udev/rules.d/
。
# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
# run the script and create a testdir to verify the rule works
ACTION=="add", RUN+="/myscript.sh", RUN+="/bin/mkdir -p '/media/pendrive'"
#remove the testfolder on removal of usb
ACTION=="remove", RUN+="/bin/rm -R '/media/pendrive'"
# exit
LABEL="my_media_automount_end"
私が実行したいテストスクリプトは次のとおりです。
#!/bin/bash
DISPLAY=:0 xterm
xterminalを表示します。スクリプト自体をテストしましたが、うまくいきます。二つ目がありますランニング+テストディレクトリを作成することも可能です。だから私は何が間違っているのかわかりません。
答え1
@EightBitTonyはおそらく正しいでしょう。 udev ルールは root ユーザーとして実行されます。したがって、を指定することに加えて、DISPLAY
このrootユーザーにXセッションへのアクセスを許可する必要があります。
適切な権限ファイルを見つけますXAUTHORITY
。echo $XAUTHORITY
ディスプレイマネージャを使用すると、ログインするたびに場所が変わることがあります。または電話でお問い合わせください。xhost +
xセッション内の他のすべてのユーザーにこのセッションへのアクセスを許可します。xhost -
もう一度閉じます。これにより、リモートユーザーはTCPポートを使用してセッションにアクセスできます。