使用 SSH.NET 无阻塞地执行命令并在关闭连接后保持 运行

Execute command with SSH.NET without blocking and keep it running after closing the connection

我正在使用以下代码:

using (var client = new SshClient(host, user, pass))
{
    client.Connect();

    var terminal = client.RunCommand("/home/my-script.sh");
}

client.RunCommand 挂起,因为我正在使用的命令正在创建一个线程。我希望执行命令而不是等待线程完成。怎么点呢?

综上所述,我想:

参考:https://csharp.hotexamples.com/examples/Renci.SshNet/SshClient/RunCommand/php-sshclient-runcommand-method-examples.html

这不是真正的 SSH.NET 问题,而是一个通用的 SSH/shell 问题。

How to make a program continue to run after log out from ssh?

所以应该这样做:

client.RunCommand("nohup /home/my-script.sh > foo.out 2> foo.err < /dev/null &");