这是 pipexec 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pipexec - 创建进程和管道的有向图
概要
pipexec [选项]... [过程描述]... [管道描述]...
商品描述
管道执行器 创建进程和管道之间的任意网络(有向图) -
甚至循环也是可能的。 它克服了通常只有外壳的缺点
能够创建非循环树。
管道执行器 还监视它的所有子进程,并能够重新启动整个网络
进程和管道,如果一个崩溃。 所以 管道执行器 可以在 SYSV-init 或 systemd 中使用
配置运行进程网络。
配置
-h 打印帮助和版本信息
-l 日志文件
使用给定的文件描述符进行日志记录。 如果指定了“s”,则使用系统日志。
示例:指定 '2' 表示记录到 stderr。
-p pid文件
- 管道执行器 可以在 SYSV-init 脚本中处理管道。 在一些
在环境(例如 RHEL6、Debian7)中,启动和停止例程需要一个 pid 文件。 如果
给出此选项,pipexec 在启动后不久将其自己的 pid 写入文件
pipexec 的。
-k 如果一个子进程(子进程)被杀死并且给出了这个选项,所有其他子进程
进程也被杀死。 之后所有进程都重新启动。
-s 睡觉时间
重新启动前的时间间隔(以秒为单位)。 此选项仅在以下情况下有意义
还指定了“-k”选项。
背景
在 shell 中,可以启动进程并将输出重定向到其他
流程。
计费示例:
cat Chap1.txt Chap2.txt | grep鸟| wc -l
创建了三个进程:'cat'的标准输出(文件描述符(fd)1)
进程连接到“grep”命令的标准输入(fd 0),并且标准
“grep”命令的输出连接到“wc”的标准输入(fd 0)
的过程。
请注意,名称和文件描述符编号之间的分配是纯的
历史,没有技术背景。
计费示例:
查找/1> >(grep .txt) 2> >(wc >/tmp/w.log)
在这个更复杂的例子中,'find' 进程的 fd 1 连接到 fd 0
'grep' 和 fd 2 连接到 'wc' 的 fd 0。
使用这种指定进程和管道的方式的限制是,它不是
可能有任何循环。 例如,不可能将 'wc' 的 fd 传递给 'grep'
或“寻找”。
管道执行器 克服了这些限制。 它可以链接任意两个任意文件
一组进程中的描述符。
用法
在建立进程和管道网络时,需要指定每个
元素分开。
这些过程将是网络中的节点(有向图),
进程之间的文件描述符是边缘。 每个节点(进程)都有一个唯一的
分配给它的名称。 这使得可以区分使用相同的
命令不止一次。
指定进程的格式是
[ 名称 /path/to/command arg1 arg2 ... argN ]
第一个参数“NAME”必须是唯一的名称。 第二个参数必须是完整的
要执行的命令的路径。 请注意,必须始终指定完整路径,
没有 PATH 环境变量处理(执行(2) 在内部使用来跨越新的
过程)。 以下参数是传递给命令的参数。
整个定义必须用方括号括起来。 方括号必须是
分别给出 - 他们之前和之后必须是一个空格。
进程间指定管道的格式为
{NAME_1:FD1>NAME_2:FD2}
例如:
{LS:1>GREP:0}
名称是进程的名称,数字是文件的编号
应该用于在两者之间构建管道的描述符。 使用 pipexec 从
shell(如bash)需要转义括号或使用引号。
示例
外壳命令
cat Chap1.txt Chap2.txt | grep鸟| wc -l
相当于
pipexec [ 猫 /斌/猫 章节 1.txt 章节 2.txt ] \
[ GREP /usr/bin/grep 鸟 ] [ WC /usr/bin/wc -l]\
"{CAT:1>GREP:0}" "{GREP:1>WC:0}"
在此示例中,pipexec 等效项更长且更复杂。 但是 pipexec 可以构建
在 shell 中不可能的循环:
pipexec [ A /bin/cmd1 ] [ B /bin/cmd2 ] "{A:1>B:0}" "{B:1>A:0}"
有关更多示例,请参见 聚四氟乙烯(1)和 皮特(1) 手册页。
使用 onworks.net 服务在线使用 pipexec
