【发布时间】:2019-06-21 08:56:04
【问题描述】:
我的问题是 shell 脚本如何执行另一个 shell 脚本,它会在新进程中产生吗?还是它与调用它的脚本在同一进程中执行?一个例子是一个 Python 脚本,它在满足条件后从 shell 脚本执行,还有人如何编写这个 shell 脚本,它会生成 Python 脚本,然后在不杀死 Python 脚本的情况下自行退出
【问题讨论】:
我的问题是 shell 脚本如何执行另一个 shell 脚本,它会在新进程中产生吗?还是它与调用它的脚本在同一进程中执行?一个例子是一个 Python 脚本,它在满足条件后从 shell 脚本执行,还有人如何编写这个 shell 脚本,它会生成 Python 脚本,然后在不杀死 Python 脚本的情况下自行退出
【问题讨论】:
是的,如果您在 shell 中调用 shell 脚本,shell 也会生成新进程。 如果您想生成 python 脚本并退出而不杀死,请在 shell 脚本/后台运行 python 或关闭 python 进程。
【讨论】:
Python 可以产生新的进程并控制它们的生命。
您可以使用 subprocess 等模块创建和管理它们:“子进程模块允许您生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回码。"
如果你想在其他线程上运行它们,你可以使用multiprocessing:“multiprocessing 是一个使用类似于线程模块的 API 支持生成进程的包。”
Shell 脚本有所不同,也许this question(及其答案)可以帮助您了解启动其他脚本的 shell 脚本 :)
【讨论】: