Нет никакой реальной разницы [1]. invoke-rc.d
команда просто обеспечивает хороший удобный интерфейс для запущения init.d скриптов, экономя Вас обременительная ответственность ввода в полном пути к скрипту, который Вы хотите запустить! Оба вызова достигнут того же конечного результата.
[1] Обратите внимание что invoke-rc.d
команда выполняет проверки прежде, чем вызвать требуемый сервисный сценарий, чтобы гарантировать, чтобы это было выполнено - это принимает меры против сценариев выполнения вызова runlevel не правый, и т.д., так в этом смысле, существует различие - это защищает Вас от стрельбы в Ваши ноги несколько. Страница справочника должна оказаться поучительной в этом отношении.
Я закончил тем, что работал вокруг "только одного родительского" ограничения путем разделения конфигурации между несколькими правилами. Для заинтересованных, вот код, с которым я закончил:
ACTION!="add", GOTO="modem_rules_end"
SUBSYSTEM!="tty" GOTO="modem_rules_end"
#ModemType1
ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", GOTO="type1_rules_begin"
GOTO="type1_rules_end"
LABEL="type1_rules_begin"
ATTRS{port_number}=="0", SYMLINK:="ttyType1_0"
ATTRS{port_number}=="1", SYMLINK:="ttyType1_1"
ATTRS{port_number}=="2", SYMLINK:="ttyType1_2"
ATTRS{port_number}=="3", SYMLINK:="ttyType1_3"
LABEL="type1_rules_end"
LABEL="modem_rules_end"
Модемные правила должны соответствовать ACTION=="add", SUBSYSTEM=="tty"
объединенный с idVendor, idProduct и атрибутами port_number:
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", ATTRS{port_number}=="0", SYMLINK+="ttyPort0"
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", ATTRS{port_number}=="1", SYMLINK+="ttyPort1"
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", ATTRS{port_number}=="2", SYMLINK+="ttyPort2"
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", ATTRS{port_number}=="3", SYMLINK+="ttyPort3"
Также проверьте если любая из существующих символьных ссылок в /dev/serial/by-id
(помогает, если Ваш модем имеет уникальный порядковый номер), или /dev/serial/by-path
(работы, если бы Вы всегда включаете свой модем в к тому же USB-порту) работал бы на Вашу цель.
ENV{ID_VENDOR_ID}=="1199" SYMLINK+="ttyPortNumber0"
, но даже который не стал инициированным. Я подтвердил с udevadem info --query=all
то, что переменная среды должна быть добавлена, но я в замешательстве относительно того, почему это, кажется, не распознает его в правиле. Что касается других символьных ссылок, Это правило должно работать на любой модем той же модели, и когда это включается к любому USB-порту, таким образом, единственная вещь, которую я сделал бы с теми, копируют их и переименовывают их, который является смыслом использования udev.
– isidor3
12.06.2013, 19:10
ACTION=="add", SUBSYSTEM=="tty", ATTRS{port_number}=="0", SYMLINK+="ttyPort0"
?
– Alex P.
12.06.2013, 20:40
awk 'BEGIN {
...
}
# the next line should NOT be within curly braces
$1 ~ /^Observation/, $1 ~ /^@@@/ { ... }
{
...
}
END{
...
}' input.txt > out.csv
-121--108276- Я сделал настройку с несколькими идентичными USB последовательные адаптеры для доступа к моим unix машин.
Я предполагаю, что атрибут KERNELS в последней строке является результатом моего концентратора «Fruefic Technology Inc»., существующего из двух концентраторов, где один присоединен к другому.
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.5:1.0", SYMLINK+="ttyUSB_Sol1"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.6:1.0", SYMLINK+="ttyUSB_Sol2"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.7:1.0", SYMLINK+="ttyUSB_Sol3"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.4:1.0", SYMLINK+="ttyUSB_Sol4"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.3:1.0", SYMLINK+="ttyUSB_HPUX1"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.2:1.0", SYMLINK+="ttyUSB_HPUX2"
KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", KERNELS=="1-1.2.1.4:1.0", SYMLINK+="ttyUSB_HPUX3"
У меня была аналогичная проблема с подключением сотового USB-модема к сети с последовательной нумерацией в системе вместе с другими USB-устройствами tty, соперничающими за номера / dev / ttyUSB *. В моем случае это был EuroTech ReliaCELL 10-20-32 с чипсетом Telit. Я решил проблему, используя некоторые идеи отсюда, и в итоге получил следующий отрывок в моих правилах:
SUBSYSTEMS=="usb", DRIVERS=="option", ATTRS{bInterfaceNumber}=="00", SYMLINK+="ttyUSB_modem_port_0"
SUBSYSTEMS=="usb", DRIVERS=="option", ATTRS{bInterfaceNumber}=="01", SYMLINK+="ttyUSB_modem_port_1"
SUBSYSTEMS=="usb", DRIVERS=="option", ATTRS{bInterfaceNumber}=="02", SYMLINK+="ttyUSB_modem_port_2"
SUBSYSTEMS=="usb", DRIVERS=="option", ATTRS{bInterfaceNumber}=="03", SYMLINK+="ttyUSB_modem_port_3"