Как сделать чтобы он работал в фоне. Запуск с параметром &
приводит к остановке сервера (stoped) и у же ничего не слушает.
Можно ли ссылку на пример програмы которя может работать в фоне
или что можно изменить в этой проге. Или подскажите что читать т.к под линуксом начал писать только пару дней назад
- Код: Выделить всё
Program server;
{
Program to test Sockets unit by Michael van Canneyt and Peter Vreman
Server Version, First Run sock_svr to let it create a socket and then
sock_cli to connect to that socket
}
uses unix,sysutils, Sockets;
Var
ex_code1:longint;
logb:boolean;
f:text;
FromName,ff ,programdir1,root1: string;
Buffer : string[255];
S : Longint;
Sin,Sout : Text;
SAddr : TInetSockAddr;
label begin1;
function getdf1:integer;
var ff_df,ff_df2:string;
ex_code1,i1,i:longint;
f_df:text;
begin
ff_df:='df > '+programdir1 +'del.exec.df.txt';
ex_code1:=fpsystem(ff_df);
assign(f_df,programdir1+'del.exec.df.txt');
reset(f_df);
readln(f_df,ff_df);
i1:=pos('Available',ff_df);
repeat
readln(f_df,ff_df);
i:=pos('/dev/hda7',ff_df);
if i>0 then
begin
ff_df2:=trim(copy(ff_df,i1,6));
end;
until eof(f_df);
close(f_df);
getdf1:=strtoint(ff_df2);
end;
procedure perror (const S:string);
begin
writeln (S,SocketError);
// halt(100);
end;
begin
S:=Socket (AF_INET,SOCK_STREAM,0);
if SocketError<>0 then
Perror ('Server : Socket : ');
SAddr.sin_family:=AF_INET;
{ port 50000 in network order }
SAddr.sin_port:=htons(1089);
SAddr.sin_addr.s_addr:=0;
begin1:
logb:=false;
if not Bind(S,SAddr,sizeof(saddr)) then
PError ('Server : Bind : ');
if not Listen (S,1) then
PError ('Server : Listen : ');
Writeln('R&K server waiting for Connect from Client');
if not Accept (S,FromName,Sin,Sout) then
PError ('Server : Accept : '+fromname);
Reset(Sin);
ReWrite(Sout);
Writeln(Sout,'Server ready v002'+#13);
Flush(SOut);
while not eof(sin) do
begin
Readln(Sin,Buffer);
Writeln('Server : read : ',buffer);
if buffer= 'df' then
begin
ff:='df > '+programdir1 +'sock.exec.df.txt';
ex_code1:=fpsystem(ff);
assign(f,programdir1 +'sock.exec.df.txt');
reset(f);
repeat
readln(f,ff);
writeln(sout,ff,#13);
until eof(f);
close(f);
end;
if buffer= 'web' then
begin
root1:='';
ff:='df > '+programdir1 +'sock.exec.df.txt';
ff:='ls '+root1+' -l -G -g --time-style=full-iso > '+programdir1 +'sock.exec.ls1.txt';
ex_code1:=fpsystem(ff);
assign(f,programdir1 +'sock.exec.ls1.txt');
reset(f);
repeat
readln(f,ff);
writeln(sout,ff,#13);
until eof(f);
close(f);
end;
end;
goto begin1;
end.