c - 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 程序?提前致谢 :)
解决方案
由于代码有多个脚本执行,它可以通过运行 ssh 到盒子并执行脚本来帮助排除脚本错误。
$ ssh user@hostname "./IOexpander && ./Serial \n"
推荐阅读
- apache-spark - spark writeStream 不适用于自定义 S3 端点
- javascript - 为什么我的随机性检查随机 num gen 不起作用?
- excel - While 循环,直到列中的每个单元格都满足条件
- mysql - MySQL 检查表是否仅包含此特定类型
- excel - 使用数据库时如何使用 Anylogic 对象 (INode) 作为类型
- fpdf - fpdf/php 对表格中的数据进行排序
- php - 使用 PHP 通过输入字段查询 SQL Server
- javascript - 我在哪里设置我的 React 项目的根目录中的 HTML 文件/页面以登陆 example.com/login.html?
- xaml - AutoSuggestBox 建议在奇怪的位置打开
- elasticsearch - elasticsearch中的应用程序端连接示例