Linux Error Code

本文详细列举了Linux系统中可能出现的所有错误代码及其含义,从常见的权限拒绝到复杂的远程I/O错误等,帮助开发者快速定位并解决问题。

Linux有着完整的错误代号机制,通过<errno.h>中的errno变量,再结合<string.h>中的strerror函数,可以清楚的了解到之前的函数调用的出错原因。

以下是所有错误代码及原因的列表

   124 EMEDIUMTYPE   Wrong medium type

   123 ENOMEDIUM     No medium found

   122 EDQUOT        Disk quota exceeded

   121 EREMOTEIO     Remote I/O error

   120 EISNAM        Is a named type file

   119 ENAVAIL       No XENIX semaphores available

   118 ENOTNAM       Not a XENIX named type file

   117 EUCLEAN       Structure needs cleaning

   116 ESTALE        Stale NFS file handle

   115 EINPROGRESS  +Operation now in progress

   114 EALREADY      Operation already in progress

   113 EHOSTUNREACH  No route to host

   112 EHOSTDOWN     Host is down

   111 ECONNREFUSED  Connection refused

   110 ETIMEDOUT    +Connection timed out

   109 ETOOMANYREFS  Too many references: cannot splice

   108 ESHUTDOWN     Cannot send after transport endpoint shutdown

   107 ENOTCONN      Transport endpoint is not connected

   106 EISCONN       Transport endpoint is already connected

   105 ENOBUFS       No buffer space available

   104 ECONNRESET    Connection reset by peer

   103 ECONNABORTED  Software caused connection abort

   102 ENETRESET     Network dropped connection on reset

   101 ENETUNREACH   Network is unreachable

   100 ENETDOWN      Network is down

    99 EADDRNOTAVAIL Cannot assign requested address

    98 EADDRINUSE    Address already in use

    97 EAFNOSUPPORT  Address family not supported by protocol

    96 EPFNOSUPPORT  Protocol family not supported

    95 EOPNOTSUPP    Operation not supported

    94 ESOCKTNOSUPPORT Socket type not supported

    93 EPROTONOSUPPORT Protocol not supported

    92 ENOPROTOOPT   Protocol not available

    91 EPROTOTYPE    Protocol wrong type for socket

    90 EMSGSIZE     +Message too long

    89 EDESTADDRREQ  Destination address required

    88 ENOTSOCK      Socket operation on non-socket

    87 EUSERS        Too many users

    86 ESTRPIPE      Streams pipe error

    85 ERESTART      Interrupted system call should be restarted

    84 EILSEQ        Invalid or incomplete multibyte or wide character

    83 ELIBEXEC      Cannot exec a shared library directly

    82 ELIBMAX       Attempting to link in too many shared libraries

    81 ELIBSCN       .lib section in a.out corrupted

    80 ELIBBAD       Accessing a corrupted shared library

    79 ELIBACC       Can not access a needed shared library

    78 EREMCHG       Remote address changed

    77 EBADFD        File descriptor in bad state

    76 ENOTUNIQ      Name not unique on network

    75 EOVERFLOW     Value too large for defined data type

    74 EBADMSG      +Bad message

    73 EDOTDOT       RFS specific error

    72 EMULTIHOP     Multihop attempted

    71 EPROTO        Protocol error

    70 ECOMM         Communication error on send

    69 ESRMNT        Srmount error

    68 EADV          Advertise error

    67 ENOLINK       Link has been severed

    66 EREMOTE       Object is remote

    65 ENOPKG        Package not installed

    64 ENONET        Machine is not on the network

    63 ENOSR         Out of streams resources

    62 ETIME         Timer expired

    61 ENODATA       No data available

    60 ENOSTR        Device not a stream

    59 EBFONT        Bad font file format

    57 EBADSLT       Invalid slot

    56 EBADRQC       Invalid request code

    55 ENOANO        No anode

    54 EXFULL        Exchange full

    53 EBADR         Invalid request descriptor

    52 EBADE         Invalid exchange

    51 EL2HLT        Level 2 halted

    50 ENOCSI        No CSI structure available

    49 EUNATCH       Protocol driver not attached

    48 ELNRNG        Link number out of range

    47 EL3RST        Level 3 reset

    46 EL3HLT        Level 3 halted

    45 EL2NSYNC      Level 2 not synchronized

    44 ECHRNG        Channel number out of range

    43 EIDRM         Identifier removed

    42 ENOMSG        No message of desired type

    40 ELOOP         Too many levels of symbolic links

    39 ENOTEMPTY    +Directory not empty

    38 ENOSYS       +Function not implemented

    37 ENOLCK       +No locks available

    36 ENAMETOOLONG +File name too long

    35 EDEADLK      +Resource deadlock avoided

    34 ERANGE       +Numerical result out of range

    33 EDOM         +Numerical argument out of domain

    32 EPIPE        +Broken pipe

    31 EMLINK       +Too many links

    30 EROFS        +Read-only file system

    29 ESPIPE       +Illegal seek

    28 ENOSPC       +No space left on device

    27 EFBIG        +File too large

    26 ETXTBSY       Text file busy

    25 ENOTTY       +Inappropriate ioctl for device

    24 EMFILE       +Too many open files

    23 ENFILE       +Too many open files in system

    22 EINVAL       +Invalid argument

    21 EISDIR       +Is a directory

    20 ENOTDIR      +Not a directory

    19 ENODEV       +No such device

    18 EXDEV        +Invalid cross-device link

    17 EEXIST       +File exists

    16 EBUSY        +Device or resource busy

    15 ENOTBLK       Block device required

    14 EFAULT       +Bad address

    13 EACCES       +Permission denied

    12 ENOMEM       +Cannot allocate memory

    11 EAGAIN       +Resource temporarily unavailable

    10 ECHILD       +No child processes

     9 EBADF        +Bad file descriptor

     8 ENOEXEC      +Exec format error

     7 E2BIG        +Argument list too long

     6 ENXIO        +No such device or address

     5 EIO          +Input/output error

     4 EINTR        +Interrupted system call

     3 ESRCH        +No such process

     2 ENOENT       +No such file or directory

     1 EPERM        +Operation not permitted

     0 --            Success

 

source from: http://blog.youkuaiyun.com/wei801004/archive/2009/06/08/4252370.aspx

 

 

<think> 我们正在解决npm出现错误代码EBUSY的问题。根据引用内容,npm error code EBUSY通常表示资源被占用或锁定,这可能发生在文件或目录被其他进程使用的情况下。以下是解决此问题的系统化步骤: ### 解决npm error code EBUSY的方法 #### 1. **清除npm缓存** 运行以下命令清除npm缓存,这可以解决因缓存文件被占用而导致的EBUSY错误: ```bash npm cache clean --force # 或者 npm cache verify ``` 然后重新运行`npm install`[^2]。 #### 2. **关闭占用资源的程序** EBUSY错误通常是由于其他程序锁定了文件或目录。检查并关闭以下可能占用资源的程序: - 终端或命令行窗口(确保没有其他npm进程运行) - 文件管理器(如资源管理器、Finder) - 杀毒软件或安全软件(临时禁用后再尝试) - 开发服务器(如Webpack、VSCode的扩展等) #### 3. **重启系统** 重启操作系统可以释放被锁定的资源,这是解决EBUSY问题的有效方法[^1]。 #### 4. **手动删除锁定文件** 在某些情况下,需要手动删除被锁定的文件或目录: - **Windows**: 使用资源监视器查找被锁定的文件,结束相关进程后删除 - **macOS/Linux**: 使用`lsof`命令查找占用文件的进程: ```bash lsof | grep /path/to/locked/file ``` 终止相关进程(使用`kill -9 <PID>`)后重试 #### 5. **检查磁盘错误** 运行磁盘检查工具修复可能存在的文件系统错误: - **Windows**: `chkdsk /f` - **macOS**: `diskutil verifyVolume /` 和 `diskutil repairVolume /` - **Linux**: `fsck -f /dev/sda1`(需根据实际分区调整) #### 6. **调整安装路径** 如果项目路径包含特殊字符(如括号、空格),尝试将项目移动到更简单的路径(如`C:\projects`)后重新安装。 #### 7. **使用替代安装工具** 尝试使用`yarn`或`pnpm`代替npm进行安装: ```bash yarn install # 或 pnpm install ``` ### 预防措施 - 避免在云同步文件夹(如OneDrive、Google Drive)中运行`npm install` - 定期清理npm缓存:`npm cache clean --force` - 确保有足够的磁盘空间和内存资源 §§相关问题§§ 1. npm缓存损坏还有哪些修复方法? 2. 如何检测文件被哪个进程占用? 3. 使用yarn或pnpm能否避免npm的常见错误? [^1]: 引用[1] [^2]: 引用[2] </think> ### 解决 npm error code EBUSY 的方法 npm 错误代码 `EBUSY` 表示资源被占用或锁定,通常发生在文件/目录被其他进程使用时。以下是系统化解决方案: #### 🔧 1. 强制清除 npm 缓存(推荐首选) ```bash npm cache clean --force npm cache verify # 验证缓存完整性 ``` 重新运行 `npm install`,此操作可解决 80% 的 EBUSY 错误[^2]。 #### 2. 终止占用进程 - **Windows**: 1. 打开资源监视器(`resmon`) 2. 在"CPU"标签页搜索锁定文件的进程 3. 结束相关进程(如 `node.exe`, `vscode.exe`) - **macOS/Linux**: ```bash lsof | grep /path/to/locked/file # 查找占用进程 kill -9 <PID> # 强制终止进程 ``` #### 🔒 3. 解除文件锁定 - 关闭所有可能锁定文件的程序: - IDE(VSCode/WebStorm) - 文件资源管理器窗口 - 杀毒软件(临时禁用) - Docker 或其他虚拟化工具 #### 4. 系统级修复 ```bash # Windows 检查磁盘错误 chkdsk /f /r C: # macOS 修复磁盘权限 diskutil repairVolume / # Linux 文件系统检查 fsck -y /dev/sda1 ``` #### ♻ 5. 重启与重装 ```bash # 清除后重启系统 npm cache clean --force && shutdown /r /t 0 # 重装 node_modules rm -rf node_modules package-lock.json npm install ``` #### 💡 进阶方案 当上述方法无效时: 1. 使用 `Process Monitor`(Windows)或 `strace`(Linux)追踪文件操作 ```bash strace -f -e trace=file npm install 2> debug.log ``` 2. 检查防病毒软件日志(如 McAfee/Symantec 常锁定 `node_modules`) 3. 在安全模式下执行 `npm install` ### 📝 注意事项 1. **持续出现 EBUSY**: - 排查后台服务(如 Dropbox/OneDrive 同步) - 检查磁盘坏道:`smartctl -a /dev/sda` 2. **容器环境**: ```dockerfile # Dockerfile 示例 RUN npm cache clean --force \ && npm install --no-optional \ # 跳过可选依赖 && chown -R node:node /app # 修复权限 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值