[00:01:14] <subjrs> вообще делаетца просто - цапарается тулза на чем угодно, хоть на той же Аде, которая закрывает свои стандартные потоки ввода вывода, потом форкается (там стандартные манипуляции, гдето пример валяется), а потом делается Spawn основной ада программы
[00:08:05] <subjrs> либо еще проще, через неблокирующий swapn

with Ada.Command_Line;
with Ada.Text_IO;

with Gnat.OS_Lib;
use Gnat.OS_Lib;

procedure Daemon is

  ID : Process_ID;

begin

  if Ada.Command_Line.Argument_Count < 1 then
     Ada.Text_IO.Put_Line ("Specify program");
     return;
  end if;

  ID := Non_Blocking_Spawn (Ada.Command_Line.Argument (1), Argument_String_To_List ("").all);

  if ID = Invalid_Pid then
     Ada.Text_IO.Put_Line ("Spawn return Invalid_Pid");
  end if;

end Daemon;

но такой вариант не секурный, там всеже манипуляции надо проделать
[00:11:11] <subjrs> а не, это в основной программе еще надо проделать

with Gnat.OS_Lib;
with Interfaces.C;

use Gnat.OS_Lib;
use Interfaces.C;

procedure Simple is

  procedure Umask (Mask : int);
  pragma Import (C, Umask, "umask");

  function Chdir (New_Directory : char_array) return int;
  pragma Import (C, Chdir, "chdir");

begin

  Umask (0);
  if Chdir (To_C ("/")) < 0 then
     OS_Exit (-1);
  end if;

  Close (Standin);
  Close (Standout);
  Close (Standerr);

  loop
     delay 10.0;
  end loop;

end Simple;

в принципе такая фигня работала )
[00:11:46] <subjrs> хотел статейку замутить - но энтож костыли какието
[00:15:03] <vgodunko> Костыли или нет, а полезно может быть!
[00:15:06] <vgodunko> Даёшь статью!
[00:17:03] <subjrs> блин, да собсно вот эти две проги и есть вся статья ))
[00:17:14] <subjrs> ну там еще было про перехват прерываний и еще чтото
[00:18:13] <subjrs> карочи костыли, но мож на неделе оформлю в удобоперевариваемый вид
[00:21:26] <vgodunko> subjrs: я вот вообще само собой разумеющиеся вещи пишу, и ничего, народ читает.
[00:23:51] <subjrs> vgodunko: просто нафига оно надо если есть уже готовые демонизаторы ну или тот же nohup (хотя он не особо подходит для этого).
AWS, который логи жабы раздает, я у себя вообзе запускаю так:
screen -m -d su -l aws -c "/srv/www/bin/awserv /srv/www/etc/awserv.conf"
[00:24:04] <yeo> А что они там намудили в рантайме, что демонить нельзя?
[00:24:12] <subjrs> таски )
[00:24:16] <subjrs> они и не работают
[00:24:32] <yeo> Си-шные же работают
[00:24:37] <subjrs> а без них вприципе вроде нормально остальное
[00:24:43] <subjrs> сишные да, гнатовские нет
[00:24:58] <subjrs> обработчики прерываний тудаже
[00:25:00] <vgodunko> Хорошие демонизаторы и возможность ощутить себя стоящим рядом с седьмым кругом Ada есть разные вещи
[00:25:39] <subjrs> ))
[00:26:14] <subjrs> лан займусь еще раз этой темой
[01:54:32] <vgodunko> landgraf: примеры использования Матрёшки для чтения XML теперь можно почерпнуть на Rosetta Code