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

Re: как демонизировать программу?



Hello!

On Friday 12 February 2010 14:59:28 Artem Chuprina wrote:
>  AP> Задача обмена данными через сокет включает в себя открытие сокета и
>  AP> получение дескриптора. Вот ровно это и делают tcpserver и tcpclient
>  AP> - без зависимостей, без сотен килобайт "нафаршированного" бинаря...
> 
> А это ничего, что задача открытия сокета, которую может решать
> tcpclient, вообще-то есть быть суть десяток совершенно шаблонных строчек
> на C, а та, которую tcpserver - ну, два десятка?
> 
> А на tcl, соответственно, одна и три?
> 
> Ради этого громоздить бинарник, нафаршированный зависимостями от
> динамической загрузки?

Возьмите статическую сборку, с dietlib. 

>  AP> socat не утилита, а монстр чуть ли не с опенофис. И с пучком зависимостей:

> Ну, да.  Потому что оно умеет открыть не только тупой TCP-сокет.  И как
> только тебе надо чуть больше, чем тупой TCP-сокет, твои tcpserver и
> tcpclient немедленно начинают исключительно занимать место на диске.  А
> пользу приносить перестают.  И все, что у тебя было завязано на их
> использование, тебе приходится переписывать на что-то более вменяемое.

А ничего, что tcpserver так и называется потому, что с tcp работает? Надо вам
другой сокет - возьмите другую утилиту. Или вы за виндовый подход, когда
каждая программа тащит в себе как можно больше всего? Тогда не надо про
юникс-вей говорить в этом контексте, если требуете, чтобы утилита tcp...
работала с udp, юникс-сокетами, служила эмулятором терминала и проч.

> А libreadline там затем же, зачем и libssl.  Только для разных типов
> файловых дескрипторов.  libssl - для SSL-сокета, а libreadline - для
> терминала с юзером.

С каких это пор в линуксе проблемы с терминалами, так что приходится эту
функциональность в socat пихать? Натуральный монстр, по идеологии виндоус.

> Ога, вот только этот интерпретатор без расширений нихрена не умеет
> сидеть сервером на UNIX socket'е.  А на TCP - умеет.  Поэтому, чтобы
> чуть-чуть расширить функциональность написанной на нем программы (а с
> точки зрения собственно программирования после открытия и первоначальной
> настройки разницы между UNIX и TCP сокетами - никакой), мне приходится
> либо искать это расширение, либо радикально менять схему работы.

Фактически unix-сокеты давно уже в состоянии deprecated, но в этом явно не
тикль виноват. А учитывая тенденции по монтированию удаленных ФС по
http-based протоколам, и вовсе. Судя по DBUS и проч., юникс-сокеты скоро
и с серверов пропадут. Я не говорю, что это именно хорошо, но так уж есть.

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: