我尝试在UNIX中执行文件。它显示以下错误:
ERROR: Unable to execute 002Sanity: Permission denied
Failed to exec()
Exit Status: 205
如何解决这个问题?
答案 0 :(得分:5)
阅读提供205 exit(2)代码的特定软件的文档。没有关于它的通用约定(除了(08/25/2015)
为0,EXIT_SUCCESS
为1)。
FreeBSD有sysexits.h,但那里没有列出205。
某些execve(2)似乎因EXIT_FAILURE
或EACCESS
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)。