首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux ` `umount`‘的返回代码值是多少?

linux ` `umount`‘的返回代码值是多少?
EN

Stack Overflow用户
提问于 2015-10-16 09:57:25
回答 4查看 12.1K关注 0票数 3

因此,我收到了一个python项目,其中有很多Linux系统调用来挂载/unmout/格式化/etc备份驱动器,以便进行定制的NAS。

现在,我想处理umount命令的输出,并处理umounted路径的情况:

代码语言:javascript
复制
print subprocess.check_output(['umount', '/storage/backup'])

它可能会返回:

代码语言:javascript
复制
umount: /storage/backup: not mounted
Command '['umount', '/storage/backup']' returned non-zero exit status 32

现在,我只需解析输出字符串并搜索not mounted,但我更愿意处理退出状态值(本例中为32)。我试图为umount命令找到一个出口代码列表,但到目前为止我一直运气不佳。

此外,我尝试为umount找到源代码,但一直未能找到它(google一直将我指向umount命令的手册页面或mount.c的源代码)

编辑

umount的手册页有一个错误列表(非数字),如:

  • EBUSY -目标无法卸载,因为它很忙。
  • EFAULT -用户地址空间外的目标点。

然后:下面给出的错误值是由文件系统类型独立的错误造成的。每种文件系统类型都可能有自己的特殊错误和自己的特殊行为。有关详细信息,请参阅Linux内核源代码

有什么指示吗?

EN

回答 4

Stack Overflow用户

发布于 2015-10-16 10:08:35

来自man mount

代码语言:javascript
复制
RETURN CODES
   mount has the following return codes (the bits can be ORed):

   0      success

   1      incorrect invocation or permissions

   2      system error (out of memory, cannot fork, no more loop devices)

   4      internal mount bug

   8      user interrupt

   16     problems writing or locking /etc/mtab

   32     mount failure

   64     some mount succeeded

   The command mount -a returns 0 (all succeeded), 32 (all failed), or  64
   (some failed, some succeeded).
票数 9
EN

Stack Overflow用户

发布于 2015-10-16 11:04:35

虽然这不是你的问题的直接答案,但更有力的(?)有效的方法是在libc中调用/umount() syscall包装器,而不是执行外部进程,并试图计算出它的输出。不幸的是,python标准库中没有内置包装器,但是使用ctype很容易,有关如何通过ctype调用挂载(),请参见https://stackoverflow.com/a/29156997/75652

http://man7.org/linux/man-pages/man2/mount.2.html

http://man7.org/linux/man-pages/man2/umount.2.html

票数 3
EN

Stack Overflow用户

发布于 2019-02-15 12:53:22

与其他所有答案不同的是,umount的返回值不一定与mount的返回值匹配!实际上,返回的代码是未能卸载的挂载点的数量,至少对于util的umount,cf是这样。其来源

由于OP的问题是关于NAS的,所以我假设使用另一个umount实现的可能是某个BSD变体。AFAIK命令mountumount也是操作系统特有的,不受POSIX的规范(与各自的C函数不同),因此对于任何与实现无关的解决方案都没有什么希望。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33167585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档