[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: