【发布时间】:2021-07-13 17:36:24
【问题描述】:
我正在 Robot Framework 中编写一个关键字,它应该连接到某个远程主机并在此远程主机上呈现的网络名称空间内启动一个守护程序/服务器(例如 SSH 守护程序)。我正在使用 SSHLibrary 建立与远程主机的连接,并执行一个应该启动给定守护程序的命令。关键字示例如下。
Start daemon
${cmd}= Set Variable ip netns exec NAMESPACE CMD_TO_START_DAEMON
Open connection REMOTE_HOST
Login USERNAME PASSWORD
${output}= Execute Command ${cmd} return_rc=True sudo=True sudo_password=SUDO_PSWD
Should Be Equal As Integers ${output}[1] 0
问题是,有了这个实现,什么都不会启动。该关键字也不会报告任何错误。输出如下所示:
${output} = [sudo] password for USERNAME:
sudo 密码正确。如果我直接在远程主机上的终端中执行相同的命令,它会完美运行。如果我尝试使用“执行命令”关键字启动守护程序,而不是在名称空间中,而是在远程主机本身上,它也可以工作。该关键字也做得很好,如果我只想在命名空间中执行一个命令,但是我尝试启动一个守护程序,我总是遇到这个问题。 同样的问题,如果我使用“启动命令”关键字而不是“执行命令”。
远程主机是 Ubuntu Server(18.04.3)
也许有人对此行为有解释?或者对我如何以其他方式做同样的事情有什么建议?
感谢您的宝贵时间!
【问题讨论】:
标签: robotframework