udev 규칙 (RUN 명령)을 사용하여 USB 장치를 연결하고 notify-send를 사용하여 알림을 표시 할 때 스크립트를 실행하고 있습니다.USB 장치가 연결되었을 때 사용자로부터 입력 받기
사용자에게 USB 입력을 요구하는 메시지가 표시됩니다. 어떻게해야합니까?
udev 규칙 (RUN 명령)을 사용하여 USB 장치를 연결하고 notify-send를 사용하여 알림을 표시 할 때 스크립트를 실행하고 있습니다.USB 장치가 연결되었을 때 사용자로부터 입력 받기
사용자에게 USB 입력을 요구하는 메시지가 표시됩니다. 어떻게해야합니까?
우수성을 사용할 수 있습니다. 쉘 스크립트에서 :
UserInput 사용자 = $ (zenity --entry --title --text "입력하십시오 뭔가" "연결 USB") 완전한 레퍼런스 참조하십시오
:이 http://library.gnome.org/users/zenity/stable/
또한 kdialog라는 KDE couterpart입니다.
실행중인 X 세션이 udev에 알려지지 않았기 때문에 udev는 누구에게 보낼지 모르고 X는 하나 이상의 활성 세션을 실행할 수 있습니다. Zenity 유형의 스크립트가 작동하려면 현재 실행중인 X 세션의 X-Auth 쿠키가 필요합니다. 이제 집에서 임시 위치로 바뀌 었습니다. 임시 위치에서는 해킹을위한 수정 스크립트가 없습니다.
필요한 작업을 수행하는 데는 많은 방법이 있지만 작업량에 따라 다릅니다.
notify-send는 정보를 표시하므로 작동하지 않습니다. 위의 제안과 마찬가지로 입력에 zenity 또는 kdialog 유형이 필요합니다. 하지만 더 중요한 것은 현재 세션이 필요하므로 gnome-session-properties를 사용하여 스크립트를 연결할 수 있습니다. 그렇게하면 로그인 할 때마다 후킹이 실행됩니다.
이것은 그런 다음 USB 장치 당신을 위해 udev에의 RUN이 훅 수있는 그놈 세션 propoties
#!/bin/sh
mkfifo /tmp/usb_notify
mkfifo /tmp/usb_feedback
while (true) do {
CALLBACK=`cat /tmp/usb_notify`
# check CALLBACK for some specific password :) if you needed
notify-send "USB plugged in something, input something for me!";
USERINPUT=$(zenity --entry --title "USB plugged in" --text "Please enter something")
echo $USERINPUT > /tmp/usb_feedback
} done;
에 훅하는 하나의 방법입니다
#!/bin/sh
echo "password" > /tmp/usb_notify
REPLY=`cat /tmp/usb_feedback`
# then you can do whatever you need to with the feedback