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: