本地c#远程执行Linux服务器上的shell脚本,出现 :cannot connect to X server,我用xhost+ 把我本机的ip加上了,还是无法执行shell命令
string command3 = "cd /home/li/Desktop && chmod u+x bat.sh && ./bat.sh";
StringBuilder result = new StringBuilder();
try
{
using (var client = new Renci.SshNet.SshClient(server, username, password))
{
try
{
client.Connect();
var command12 = client.RunCommand(command2);
string serverResponse = command12.Result;
client.Disconnect();
}
catch (Exception e1)
{
result.Append(e1.Message + "\r\n");
}
}
}
catch (Exception e1)
{
result.Append(e1.Message + "\r\n");
string t = result.ToString();
}
command2 的值是什么?
command2 ="cd /home/li/Soft/MFusion && ./MFusion DataPath=Dataset/wu003"
这个MFusion是一个图形化程序,我想通过他来处理数据,我的思路是这样的,先在C#中把数据进行预处理,然后将数据上传至服务器。再执行这个程序处理的命令
@NeXT、: 你自己用同样的账户手动 ssh 可以正常执行上面的命令吗?
@dudu: 在Linux 中执行命令是可以的,因为他会打开图形界面。
但是远程执行的话就会报cannot connect to X server的
@NeXT、: 试试 "export DISPLAY=:0 && cd /home/li/Soft/MFusion && ./MFusion DataPath=Dataset/wu003"
@dudu: 可以了可以了,谢谢大神
建议提供相关的C#代码
– dudu 6年前@dudu: 补充了
– NeXT1995 6年前