FreeBSD devd palm
Материал из OpenWiki
Настройка автозапуска jpilot для синхронизации Palm при нажатии на HotSync
Как известно, в devd в FreeBSD может выполнять опеределённые действия при подключении и отключении устройств. Но к сожалению, X11-программы тяжело запустить не из X11-сеанса.
Для этого написан простой shell скрипт, который запускается при старте сеанса X и принимает команды через сокет. У меня это делается на локальной машине за firewall, в других случаях наверное лучше использовать Unix domain socket, а на многопользовательской машине использовать какой-либо другой способ IPC
#!/bin/sh while true do cmd=`nc -l 10001` case $cmd in jpilot) pgrep jpilot >/dev/null || (( jpilot &) ; sleep 1) jpilot -s ;; xterm) xterm & ;; quit) exit ;; esac done exit 0
xterm упомянут для отладки :-)
А в /etc/devd.conf добавляется строка, посылающая jpilot этому скрипту при присоединении устройства ucom0:
attach 10 { device-name "ucom0"; action "rm -f /dev/pilot"; action "ln -sf /dev/cuaU0 /dev/pilot"; action "echo jpilot | nc localhost 10001"; }; detach 10 { device-name "ucom0"; action "rm -f /dev/pilot"; };