【发布时间】:2014-04-21 10:49:24
【问题描述】:
假设存在一个python脚本resolve_ip.py,它神奇地返回我们关心的机器的字符串IP。
我有兴趣学习如何实现以下 bash 命令的 python 等效项:
user@host:~$ ssh $(./resolve_ip.py)
在这个 bash 示例中,在 python 脚本运行后,它被替换或替换为它的返回值,该返回值反过来作为程序 ssh 的输入提供。结果是,python 程序终止,用户与 ssh 初始化交互。
问题是,此解决方案需要使用 2 个脚本(一个运行 ssh 的 bash 脚本,结合 python 脚本返回参数)或人工干预,以按照上述格式直接键入 bash 命令。
问题:
有没有办法,只使用 python,通过使用子进程或一些类似的模块来启动/派生交互式服务(如 ssh),并让这个分叉的子进程在前台保持活动状态,即使在它的父进程之后(python ) 有 sys.exit() 吗?
注意事项:
在这种情况下,这个问题的重点不是编写脚本从 Python 中向 ssh 提交 ssh 凭据。它是如何生成一个子进程,该子进程在其父/生成器终止后继续在前台运行。
编辑: 以下资源是相关的:
【问题讨论】:
-
ssh 运行后是否需要 Python 做任何事情?
标签: python bash ssh subprocess fork