TProcess killt unter Linux die Aufgerufene Anwendung

Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

TProcess killt unter Linux die Aufgerufene Anwendung

Beitrag von corpsman »

Servus mit einander,

ich schreibe Gerade ein Programm, welches ein anderes Programm aufruft und habe das Problem, dass es sich unter Windows so verhällt wie erwartet und unter Linux beendet sich das aufgerufene Programm ebenfalls wenn das aufrufende beendet wird.

Man erstelle 2 Programme "caller" und "called". Das Programm caller ruft called auf und zwar mit folgendem code:

Code: Alles auswählen

 
Procedure TForm1.Button1Click(Sender: TObject);
Var
  p: TProcessUTF8;
  t: int64;
Begin
  //ExecuteProcess();
  p := TProcessUTF8.Create(Nil);
  p.CurrentDirectory := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
  p.Executable := 'called';
  p.Parameters.Add('workdir=/dev/test');
  p.Parameters.Add('blubber=/dev/test/bla');
  p.Options := [];
  p.Execute;
  t := GetTickCount64;
  While t + 5000 > GetTickCount64 Do Begin
    Application.ProcessMessages;
  End;
  //  p.free;
  close;
End
 


das Programm called ist einfach nur eine leere form und liegt im selben Verzeichnis.

Sobald caller sich schließt wird called unter linux ebenfalls beendet, unter windows bleibt called aktiv.

Hat jemand eine Ahnung was ich hier anders machen muss ?
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TProcess killt unter Linux die Aufgerufene Anwendung

Beitrag von corpsman »

Oh mann,

Wenn ich caller ohne die IDE starte, dann gehts auch unter linux, das scheint dann wohl was mit dem Debugger zu tun zu haben ...
--
Just try it

Antworten