【发布时间】:2015-09-03 02:33:59
【问题描述】:
我正在尝试使用 TProcess 单元执行 ssh 以连接到我的一台服务器并为我提供 shell。这是对我在 Ruby 中的一个重写,因为 Ruby 的执行时间非常慢。当我运行我的 Process.Execute 函数时,我看到了 shell,但它立即成为背景。运行pgrep ssh 表明它正在运行,但我无权访问它,使用fg 不会将其恢复。该段代码如下:
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 是TProfile 类型的变量,它是包含有关服务器信息的记录。编目系统和检索工作正常,但拉起外壳却不行。
【问题讨论】:
-
你还需要答案吗?
标签: ssh pascal lazarus freepascal delphi