Как получить правильное значение для первого поля crypttab? [закрыто]

Ответ Radu, похоже, не работает для меня 16.04. Вместо того, чтобы пытаться бороться с проблемой DISPLAY, которая, кажется, меняется с разными версиями, я об этом немного по-другому. Я создаю один скрипт, который вызывается двумя способами. Правило udev вызывает сценарий, отправляя какой-то вывод в именованный канал. При входе в систему сценарий также запускается в сервисном режиме. Здесь он прослушивает трубку и запускает желаемую команду GUI.

В качестве примера я хотел бы получать уведомления о USB-устройствах хранения, когда они подключены, и, в частности, мне нравится знать, какой путь устройство и его серийный номер (что может показаться странным, но у меня есть веские причины). Вот сценарий, который я использую для выполнения этого.

#!/bin/bash
# script name: usb-notify.sh
# This script needs to be called at logon with "service" parameter
# This script needs to be called by udev on USB insertion with no parameter

pipe="/tmp/usb-notifications"
if [ "$1" == "service" ]; then
    # create the named pipe that will help us trigger events from udev
    rm "$pipe"
    mkfifo "$pipe"

    # This outer while loop ensures that we can process multiple triggers
    while true
    do
        # This inner while loop reads individual trigger events
        while read info
        do
            # run some GUI command. Here, I'm running notify-send
            notify-send "USB Inserted" "$(echo -e $info)"
        done < "$pipe"
    done
else
    # Here's where udev triggers our event. If you don't need to pass any arguments
    # you  could just as easily pass an empty line as a trigger for the service.
    [ -e "$pipe" ] && echo "Device: $DEVNAME\\\nSN: $ID_SERIAL_SHORT" > "$pipe"
fi

Этот сценарий затем должен быть вызван двумя способами. Во-первых, для вызова этого скрипта необходимо создать правило udev. Это можно сделать с помощью следующей команды (очевидно, вы должны изменить это, чтобы посмотреть, какое устройство должно запускать ваш скрипт):

echo 'ACTION=="add",KERNEL=="sd?",RUN+="[path-to-script]/usb-notify.sh"' | sudo tee -a /etc/udev/rules.d/80-USB.rules

Во-вторых, вам нужно вызвать этот скрипт с параметром «service» на авторизоваться. Итак, откройте программу «Запуск приложений» и добавьте запись, которая запускает «[путь к вашему скрипту] /usb-notify.sh service»

Этот скрипт может быть изменен, чтобы запускать практически любой Приложение GUI для событий udev. Если вы не хотите, чтобы другие пользователи могли смотреть ваш канал, вы должны, вероятно, установить ограничительные права на него.

1
задан 8 September 2015 в 12:47

0 ответов

Другие вопросы по тегам:

Похожие вопросы: