Je tente d'utiliser l'unité TProcess pour exécuter ssh afin de me connecter à l'un de mes serveurs et de me fournir le shell. C'est une réécriture de celle que j'avais dans Ruby car le temps d'exécution de Ruby est très lent. Quand je lance ma fonction Process.Execute, je suis présenté avec le shell mais il est immédiatement décoré. Running pgrep ssh
révèle qu'il est en cours d'exécution, mais je n'ai aucun accès à ce que ce soit, en utilisant fg
ne le ramène pas. Le code est le suivant pour ce segment:La commande système s'exécute mais est immédiatement mise en arrière-plan
if HasOption('c', 'connect') then begin
TempFile:= GetRecord(GetOptionValue('c', 'connect'));
AProcess:= TProcess.Create(nil);
AProcess.Executable:= '/usr/bin/ssh';
AProcess.Parameters.Add('-p');
AProcess.Parameters.Add(TempFile.Port);
AProcess.Parameters.Add('-ntt');
AProcess.Parameters.Add(TempFile.Username + '@' + TempFile.Address);
AProcess.Options:= [];
AProcess.ShowWindow:= swoShow;
AProcess.InheritHandles:= False;
AProcess.Execute;
AProcess.Free;
Terminate;
Exit;
end;
TempFile
est une variable de type TProfile
, qui est un document contenant des renseignements concernant le serveur. Le système de catalogage et de récupération fonctionne bien, mais en tirant la coque ne fonctionne pas.
avez-vous encore besoin d'une réponse? –