简单工艺流道

yet-another-runner的Python项目详细描述


流道Build StatuscodecovBCH compliancedonate using paypal

简单包装子流程.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)

终止进程。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jsf-java。安全NoSuchAlgorithmException:在jboss上部署时AES密钥生成器不可用   使用servlet与持久化java应用程序对话   java SPNEGO获取用户详细信息   如何向数组中的每个元素添加特定的数字?JAVA   佛教日历中的java JSpinner日期编辑器   tomcat6如何使用ip地址从另一台机器运行java动态web项目   向数据模型添加行时发生java ArrayIndexOutOfBoundsException   java奇怪的线程行为   java为什么程序没有显示任何输出?   具有弱值的java HashMap   java可以收集数据。不可修改地图是否保留原始地图?   java如何确定应用程序中的gccpu利用率?   带文本文件和比较索引的java摩尔斯电码   java第二个按钮没有响应   Maven LifecycleExecutionException java。util。ConcurrentModificationException帮助读取此堆栈跟踪/调试   java试图实现持有密钥绑定   运行时如何在Java程序中检索环境变量(外部修改)的修改值?   java可以在Gsheets数据验证下拉菜单中使用IF函数吗   java应该是抽象还是实现的一部分?