python - 无法使用python子进程popen挂载文件系统

标签 python linux subprocess popen

我正在尝试使用 python subprocess.popen 命令挂载 nas 文件系统,我正在运行一个脚本来挂载文件系统。一些脚本无法挂载文件系统的原因。

我的脚本:

self.mountSrc  = subprocess.Popen('mount'+' '+ self.src_m[l], shell=True)

print self.mountSrc

if self.mountSrc==0:

   print "Mounted filesystem:"+ self.src_m[l]

我的脚本输出:

Mounting: Source Mount Point:/rsyncTesting/source/share1
Starting:[................................................... ] Done!

mount: can't find /rsyncTesting/source/share1 in /etc/fstab or /etc/mtab
1

在运行 mount 命令之前,我正在更新/etc/fstab 中的文件系统路径。我也可以从命令行以 root 用户身份手动挂载文件系统。

slcnas888:/export/rsyncScriptProject_Source/rsyncShare1/.zfs/snapshot/SR_0000-0000000_Refresh_rsyncShares_RSYNC_PROJ_exp13April16/rsyncTesting/source/share1

最佳答案

我刚刚修改了 mount命令包含挂载点的名称,
mount /absolute-nas-fs-path /mount-point而不仅仅是 mount /absolute-nas-fs-path .

我观察到在 Linux 中,当我们向 /etc/fstab 添加条目时文件,正在运行 mount <mount point path>在 shell 中工作正常,但在 python 子进程中,我们需要在命令参数中传递文件系统绝对路径和挂载点。

# self.src_fs[l] is an item from my list of filesystem paths.
# self.src_m[l] is an item from my list of mount points.
self.mountSrc = subprocess.Popen('mount ' + self.src_fs[l] + ' ' + self.src_m[l], shell = True)
print self.mountSrc
if self.mountSrc == 0:
    print "Mounted filesystem:" + self.src_m[l]

关于python - 无法使用python子进程popen挂载文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631680/

相关文章:

c - 从 Assembly 调用 C 函数 (printf) 时出现段错误

java - 为什么 Java 创建的两个子进程表现不同?

python - 使用 Tensorflow Keras 将 CNN 与 LSTM 相结合

python - 缝合最终尺寸和偏移

python - 使用Python从MySQL数据库中提取两个日期时间之间的数据

c++ - 多次调用 std::cout 使子进程挂起

python - 确定自进程最后一次输出以来的时间 - 使用 subprocess.Popen

javascript - JS, "objects",这个那个。来自 python 这真的让我感到困惑。 (双关语)

c - 从 st_size 读取自己的大小的程序

linux - 在 Bash 中检测 JAR 命令的失败