Я пишу программу, которая должна выдавать вывод из команды ssh в консоли, но она делает это, только если я завершаю сеанс bash. Вот код:
public async Task test()
{
var host = "123.234.26.28";
var username = "root";
var password = "xxxxxxxxxx";
var client = new SshClient(host, username, password);
client.Connect();
var cmd = client.CreateCommand("./testcommand.sh");
var result = cmd.Execute();
Console.Write(result);
var reader = new StreamReader(cmd.ExtendedOutputStream);
Console.WriteLine("DEBUG:");
Console.Write(reader.ReadToEnd());
client.Disconnect();
}
Testprogramm.sh — это скрипт, который запускается и запускается и должен эмулировать работающий сервер, который также не прекращает выдавать результат. Все, что я хочу, это чтобы вывод выдавался в реальном времени в моем терминале.
reader.ReadLine()
в цикле, а неreader.ReadToEnd()
? - person Jon Skeet   schedule 07.07.2021ReadToEnd
с Process.StandardOutput. Звонок не закончится, пока процесс не завершится. Вам придется читать вывод построчно, посимвольно или блок за блоком - person Panagiotis Kanavos   schedule 07.07.2021