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";
};