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 규칙은 루트 사용자로 실행됩니다. 따라서 을 지정하는 것 외에도 DISPLAY
이 루트 사용자에게 X 세션에 대한 액세스 권한을 부여해야 합니다.
해당 권한 파일 을 찾아 XAUTHORITY
.echo $XAUTHORITY
디스플레이 관리자를 사용하면 로그인할 때마다 위치가 변경될 수 있습니다. 또는 전화로 문의하실 수 있습니다.xhost +
x 세션에서 다른 모든 사용자에게 이 세션에 대한 액세스 권한을 부여하십시오. xhost -
다시 닫을 겁니다. 이를 통해 원격 사용자가 TCP 포트를 사용하여 세션에 액세스할 수도 있습니다.