є наступна структура:
1. фронтенд на
Ruby On Rails - вебморда для стрімінг сервера (ака "рельси").
2. прошарок, що власне менеджить
vlc (створює плейлісти, запускає
vlc, убиває, етц.), до якого під'єднується рельсовий фронтенд - є дві реалізації
2.1
xmlrpc сервер на пітоні
2.2 демон на
Distributed Ruby (DRb)3. власне
vlc плеєр, що використовується як відео стрімінг сервер (
http://www.videolan.org/vlc/)
запустити
vlc спід рельс не вдавалось (процес просто помирав), а от демон на рубі робив це цілком успішно, тому я вирішив покласти цю функціональність на нього. з часом, правда, знайшовся ресурс-лік - через добу він також переставав запускати
vlc, але після рестарту ситуація нормалізувалась. кілька днів я намагався знайти лік за допомогою
lsof i
strace, але безуспішно. доречі спостереження показали що все вмирало через добу, не залежно від інтенсивності використання.
після чого було вирішено написати аналогічний менеджер на пітоні, а для комунікації із рубі був обраний
xmlrpc. коли весь функціонал був протестований і ми вирішили відмовитись від простого запуску скрипта на користь демонізації - ми використали наступну обгортку
http://www.noah.org/wiki/Daemonize_Python.
але демонізований пітонівский код відмовився запускати
vlc. тому наразі є вибір між трьома дико кривими рішеннями:
1. демон на рубі який через добу помирає
2. скрипт на пітоні, який помирає після того як закриваєш
putty3. демон на пітоні який взагалі нічого не запускає.
наразі найбільш найбільш раціональним бачу - копати в сторону демонізованого пітону, але хз як.
з.і.
cat /proc/version
Linux version 2.6.18-6-686 (Debian 2.6.18.dfsg.1-18etch6) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Fri Jun 6 22:22:11 UTC 2008