简单工艺流道
yet-another-runner的Python项目详细描述
流道
简单包装子流程.popen。
可以将多个命令配置为执行。每个命令都可以 具有一些预定参数和附加参数或 执行应用程序时可以传递重写。多重 一个应用程序的实例可以使用别名运行。
与正在运行的进程通信 yet-another-io-channels-library 使用。
示例:
使用stdio。
runner = Runner()
runner.add("cat", "cat")
runner.start('cat')
channel = runner.get_channel('cat')
channel.write(b'hello, world')
# later
line = channel.read() # Will return b'hello, world'
使用Unix套接字。
runner = Runner()
self._runner.add("socat", "socat SYSTEM:cat UNIX-LISTEN:socket",
type="socket", socket="socket")
runner.start('socat')
channel = runner.get_channel('socat')
channel.write(b'hello, world')
# later
line = channel.read() # Will return b'hello, world'
课程
转轮
add(self, name, command, **kwargs)
将应用程序添加到已注册的应用程序列表或更新 如果已经添加。
name
:应用程序名称command
:要执行的命令
**kwargs
可以包括以下内容:
type
:要么stdio
,要么socket
。默认值是stdio
cwd
:进程的工作目录socket
:如果type是socket
,则这是要连接到的unix套接字文件的名称setpgrp
:如果True
进程被移动到单独的进程组,则不会接收发送到主进程的信号。默认值是False
buffering
:如果设置为"line"
,则对通道进行缓存以进行读取
update_config(self, config)
配置必须是一个字典,其中每个键都是
应用程序和值是该应用程序的字典
配置。runner.add("app", "command", **kwargs)
是等价的
到runner.update_config({"app": {"command": "command", **kwargs}})
。可用于同时添加多个应用程序。
ensure_running(self, app_name, alias=None, with_args=None, **kwargs)
start(self, app_name, alias=None, with_args=None, **kwargs)
开始这个过程。如果具有相同别名的进程已经
运行时,start
将提高ProcessExistsException
,而
ensure_running
将不做任何事。
app_name
:应用程序别名,在配置中给定alias
:将给实际启动的进程的别名。如果None
,则将使用应用程序别名with_args
:将添加到命令中的其他参数的列表kwargs
:扩展或重写应用程序配置中的参数
get_channel(self, alias)
返回要与正在运行的进程通信的Channel
对象。
terminate(self, alias)
终止进程。