首页 > 解决方案 > C 程序等待执行 SSH 发送的命令

问题描述

我正在尝试通过 SSH 将命令发送到需要通过串行端口进行通信的远程系统。当我发送一个立即执行的命令时,一切正常,但是当我向运行我的程序的客户端发送一个命令时,该程序挂起并等待串行数据,我的其余 c 代码没有执行。我的代码看起来像这样。

 FILE* remf = popen("ssh DestinationPC > remoteoutput.txt", "w");
 if (!remf) { perror("popen ssh failed"); exit(EXIT_FAILURE); };
 fprintf(remf, "./IOexpander \n");
 fprintf(remf, "./Serial \n");
 fclose(remf);

第一行 (./IOexpander) 工作正常并打开一些 LED。没有第二行,执行继续。但是当我添加第二行时(当我尝试运行任何不会立即终止的程序时),上面代码下面的行不会被执行。

如何在不等待客户端执行命令的情况下运行我的 c 程序?提前致谢 :)

标签: clinuxssh

解决方案


由于代码有多个脚本执行,它可以通过运行 ssh 到盒子并执行脚本来帮助排除脚本错误。

$ ssh user@hostname "./IOexpander && ./Serial \n"


推荐阅读