Re: как демонизировать программу?
Hello!
On Thursday 11 February 2010 19:29:04 Artem Chuprina wrote:
> Вику обычно не только читают через веб-интерфейс, но и пишут. И где-то
> в этом процессе оно должно преобразовывать туда-сюда всяческую
> викификацию. В ней-то собака и порылась. Либо викификация хреновая
> (писать неудобно), как в cvstrac, либо движок сложный, либо и то, и
> другое вместе.
Мне html хватает в textarea. Кому не хватает - можно получить документ,
отредактировать в любимом текстовом редакторе и закоммитить обратно.
> AP> Насчет веб-интерфейса интереснее, но я полагаю, что для человека,
> AP> написавшего свой _браузер_ не нужны значительные усилия для
> AP> создания простого веб-интерфейса.
>
> _Простой_ веб-интерфейс, согласно unix way, следует делать _другими_
> утилитами. Независимыми.
В такой постановке - согласен. Но аналогично можно сказать, что текстовый
редактор не должен уметь _редактировать_ текст - на то sed есть ;-)
> AP> Нужен кто-то, кто откроет сокет и поделится дескриптором.
>
> Это не "для обмена данных с сокетом", согласись?
Задача обмена данными через сокет включает в себя открытие сокета и получение
дескриптора. Вот ровно это и делают tcpserver и tcpclient - без зависимостей, без
сотен килобайт "нафаршированного" бинаря...
> А утилита для открытия файлов, сокетов и прочей фигни называется socat.
> Вот это - утилита, которая умеет ровно открыть и поделиться
> дескриптором. Но умеет это хорошо. В отличие от.
socat не утилита, а монстр чуть ли не с опенофис. И с пучком зависимостей:
$ ldd `which socat`
linux-gate.so.1 => (0xb777a000)
libwrap.so.0 => /lib/libwrap.so.0 (0xb774b000)
libutil.so.1 => /lib/i686/cmov/libutil.so.1 (0xb7747000)
libreadline.so.5 => /lib/libreadline.so.5 (0xb7714000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb76cd000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7586000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb742f000)
libnsl.so.1 => /lib/i686/cmov/libnsl.so.1 (0xb7418000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb73df000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb73db000)
libz.so.1 => /usr/lib/libz.so.1 (0xb73c6000)
/lib/ld-linux.so.2 (0xb777b000)
Из которых, к примеру, libwrap - довольно "мутное" изделие.А использование
libreadline вызывает резонный вопрос - кем они себя считают? Утилитой или
новым шеллом с прибамбасами? А еще сжатие встроено, криптация...
Для примера:
$ ldd `which tclsh8.5`
linux-gate.so.1 => (0xb78a0000)
libtcl8.5.so.0 => /usr/lib/libtcl8.5.so.0 (0xb7777000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7773000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7759000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7733000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75ec000)
/lib/ld-linux.so.2 (0xb78a1000)
Итого - названная вами "утилита" вдвое больше зависимостей имеет, нежели
интерпретатор языка программирования общего назначения! Нет, это не
unix way, это unix away.
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
Reply to: