bash 权限被拒绝 : Can't echo to the stdin of a running process?

标签 bash unix process pipe echo

我正在尝试将命令回显到正在运行的进程的标准输入,因此:

echo -en '<Hex Command>' | /proc/<pid>/fd/0

但我被拒绝许可。我尝试将其包裹在 sudo sh -c 内但遇到了同样的错误。我做错了什么?

编辑:作为后续问题,如果我想将上述进程的 stdin 的回显输出重定向到 txt 文件(即链重定向),因为我期望终端无法读取进程的十六进制输出,怎么可能我做吗?直接添加另一个 > 不起作用。

最佳答案

管道|运算符用于两个进程之间的通信。您需要重定向运算符 >因为右边的操作数是一个文件。

编辑:顺便说一句,权限被拒绝错误是因为文件 /proc/<pid>/fd/0没有可执行权限。

关于bash 权限被拒绝 : Can't echo to the stdin of a running process?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942725/

相关文章:

arrays - Bash 间接引用关联数组

c++ - 在共享对象 unix/linux 中查看 c++ 方法/构造函数

java - 运行 jar 时出现 ClassNotFoundException

linux - 追踪过程树

创建 2 个子进程以使用管道对文件的单词进行排序

linux - 尝试为 Cloudformation 创建/更新 bash 脚本时出现 AlreadyExistsException 错误

bash - OSX 上 udev 功能的替代方案

linux - 如何从 pid 中找到 bash 脚本名称?

git 删除以冒号开头的文件

在父进程和子进程之间创建管道