python - 如何从 Python 异步调用 shell 脚本?
问题描述
我有一个 shell 脚本,它对传递的字符串进行一些处理,然后将其写入文件。但是我不希望我的函数 foo() 等待它完成操作。我如何调用process(msg)
然后继续执行{code block 2}
而不等待process(msg)
执行完成?
def process(msg):
subprocess.call(['sh', './process.sh', msg])
def foo():
# {code block 1}
process(msg)
# {code block 2}
foo()
将从另一个函数调用,几乎每秒一次或两次。
解决方案
您需要的是https://docs.python.org/3/library/os.html#os.fork ,即os.fork()
这样您就可以生成一个子进程,该子进程的寿命可以超过父进程,以后可以systemd
在 Linux 上声明该子进程。我对Windows一无所知。
推荐阅读
- c# - WPF White框架访问自定义控件上的自定义属性
- javascript - 有没有更快的方法在 namesArray 中查找任何名称?
- javascript - 是否可以将列表中的值添加到输入表单字段?
- linux - 在远程服务器上通过 SSH (JSch) 运行 Linux GUI/GTK 应用程序
- c - 如何以特定的三角形打印数组?
- python - 在 fizzbuzz 中,为什么使用 dicts 的程序认为 0 是 fizzbuzz?
- c# - 使用正则表达式和 | 操作员
- bash - “尾-f
“管道到“grep -m1”在第一次匹配时没有退出 - c++ - 递归、可变参数模板函数
- sonarjs - 关于使用 SonarJS 编写自定义规则的问题