通过 devpts在另一个terminal执行命令【JAVA教程】

!
也想出现在这里? 联系我们
信息

通过 devpts在另一个terminal执行命令,第1张

概述通过/ dev / pts在另一个terminal执行命令

我有一个terminal使用STDIN 3(/ proc / xxxx / fd / 0 – > / dev / pts / 3)

所以如果(在另一个terminal)我做:

echo \’do_something_command\’ > /dev/pts/3

该命令显示在我的第一个(第3点)terminal,但命令不执行。 如果(在这个terminal的第3点)我正在等待一些来自stdin的数据的程序,数据写在屏幕上,但程序不能从stdin中捕获它。

我想要做的是执行命令“do_something_command”不仅显示它。

在linux中是主动等待常见的

有没有办法使用IAM来pipe理对EC2实例的开发人员访问? (ssh不是ec2 API)

我怎样才能找出在docker运行jetty.base和jetty.home的顺序?

Redis Sentinel用于监控目的? 通知脚本触发了太多次

从variables中删除空格

有人可以向我解释这种行为吗? 当然,如何达到我的目的…

Bash命令行重命名通配符

PHP-FPM,Monit,Ping / status页面,Apache

摆脱“gcc – / usr / bin / ld:warning lib找不到”

C中两个整数的快速双向散列

getline()函数行为奇怪

我完全明白你在问什么。 你可以通过在C中编写和执行一小段代码来实现这一点。 这应该给你一些想法。

#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <string.h> #include <unistd.h> voID print_help(char *prog_name) { printf(\”Usage: %s [-n] DEVname COMMANDn\”,prog_name); printf(\”Usage: \’-n\’ is an optional argument if you want to push a new line at the end of the textn\”); printf(\”Usage: Will require \’sudo\’ to run if the executable is not setuID rootn\”); exit(1); } int main (int argc,char *argv[]) { char *cmd,*nl = \”n\”; int i,fd; int devno,commandno,newline; int mem_len; devno = 1; commandno = 2; newline = 0; if (argc < 3) { print_help(argv[0]); } if (argc > 3 && argv[1][0] == \’-\’ && argv[1][1] == \’n\’) { devno = 2; commandno = 3; newline=1; } else if (argc > 3 && argv[1][0] == \’-\’ && argv[1][1] != \’n\’) { printf(\”InvalID Optionn\”); print_help(argv[0]); } fd = open(argv[devno],O_RDWR); if(fd == -1) { perror(\”open DEVICE\”); exit(1); } mem_len = 0; for ( i = commandno; i < argc; i++ ) { mem_len += strlen(argv[i]) + 2; if ( i > commandno ) { cmd = (char *)realloc((voID *)cmd,mem_len); } else { //i == commandno cmd = (char *)malloc(mem_len); } strcat(cmd,argv[i]); strcat(cmd,\” \”); } if (newline == 0) usleep(225000); for (i = 0; cmd[i]; i++) ioctl (fd,TIOCSTI,cmd+i); if (newline == 1) ioctl (fd,nl); close(fd); free((voID *)cmd); exit (0); }

使用sudo权限编译并执行它。 例如,如果你想在/dev/pts/3上执行一个命令,那么简单地做一个sudo ./a.out -n /dev/pts/3 whoami ,在/dev/pts/3上运行一个whoami 。

此代码完全取自此页面 。

你似乎在命令周围使用了错误的引号。 删除引号和echo命令,或者使用echo和back-ticks(`)。

尝试:

echo `date` > /dev/pts/3

要不就

date > /dev/pts/3

请注意,无论在/ dev / pts / 3上运行,都无法读取“从后面”d出的内容。

总结

以上是内存溢出为你收集整理的通过/ dev / pts在另一个terminal执行命令全部内容,希望文章能够帮你解决通过/ dev / pts在另一个terminal执行命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞181 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容