我正在使用子进程通过已安装的网络文件系统在另一台计算机上运行程序。
我在这个项目中的第一步是使用sshfs mount和wget:
sys_process = subprocess.Popen(wget_exec.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
wget
完美无缺/mnt/ssh_mount/wget
不执行系统库:
我知道这一点因为当我通过ssh mount(/ mnt / ssh_mount / bin / wget)调用wget命令时会抛出错误。我不希望使用这个安装所有系统所需的库,因为它无法尝试远程运行某些东西。
已进行权限的度量检查
如何获取使用本地库的命令?
我希望也能使用nfs作为解决方案:
我尝试过(没有成功)
os.chdir('/mnt/ssh_mount')
Error while loading shared libraries: 'libpcre.so.0: cannot open shared object file: No such file or directory'假定一个稳定的挂载点,当环境发生变化时会导致2个位置发生变化(从数据库规范化背景来看这似乎是错误的,我会假设代码/系统管理员也是如此)
答案 0 :(得分:2)
您实际上并没有在远程计算机上运行wget
命令 - 您正在尝试在本地系统上运行远程计算机的二进制文件,并且由于库不兼容而导致命令失败版本。 sshfs
,nfs
和其他类型的网络安装协议只是将远程文件系统挂载为本地扩展 - 它们不允许远程执行。为此,您需要使用ssh
隧道打开远程shell并执行Arch wget
命令。