退出状态205是什么意思?

时间:2015-09-04 12:13:22

标签: linux bash

我尝试在UNIX中执行文件。它显示以下错误:

ERROR: Unable to execute 002Sanity: Permission denied 
Failed to exec()
Exit Status: 205

如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

阅读提供205 exit(2)代码的特定软件的文档。没有关于它的通用约定(除了(08/25/2015)为0,EXIT_SUCCESS为1)。

FreeBSD有sysexits.h,但那里没有列出205。

某些execve(2)似乎因EXIT_FAILUREEACCESS errno而失败。您可以使用strace(1)进行调查。另请参阅日志文件(可能是ENOEXEC下最近修改过的文件)。

确保您正在执行的脚本(或executable文件)确实是可执行的。尝试/var/log/(见chmod(1))。

答案 1 :(得分:1)

退出状态仅在退出程序的上下文中可用。在这种情况下,它可能是bash(基于你问题上的标签),它有一些退出状态的特殊处理。首先,它记录了为信号终止的命令添加128信号。在这种情况下,exec()文件的尝试失败,所以有人可能会猜测它与errno相关。查看/usr/include/asm-generic/errno.h显示没有高达205的错误,所以在猜测它添加了另一个数字。该数字可以是192(128 + 64,或八位字节的两个最高位)。这留下13,这是EACCES(权限被拒绝),是一个exec的最可能的错误,只是没有找到;事实上,这将确认我们的错误信息已经说“权限被拒绝”。很可能你试图执行的文件不可执行(用chmod + x来实现),可能它安装的文件系统在没有允许任何执行的情况下挂载(flag noexec)。

相关问题