# os 错误处理

## 模板（错误）

### 错误行动链（必填）

1. 触发条件
2. 检测信号
3. 恢复步骤
4. 成功判据
5. 升级路径（可选）

## 错误代码

### SHELL_COMMAND_FAILED

**描述：** Shell 命令执行失败。

**原因：**

- 命令不存在
- 权限不足
- 命令执行超时

**解决方案：**

- 检查命令是否存在
- 检查执行权限
- 增加超时时间

### DAEMON_NOT_FOUND

**描述：** 守护进程不存在。

**原因：**

- 指定的守护进程 ID 不存在
- 守护进程已被删除

**解决方案：**

- 检查守护进程 ID 是否正确
- 确认守护进程是否已启动

### DAEMON_NOT_RUNNING

**描述：** 守护进程未运行。

**原因：**

- 守护进程已停止
- 守护进程崩溃

**解决方案：**

- 重新启动守护进程
- 检查守护进程日志

## 常见问题

### Q: Shell 命令执行有什么安全风险？

A: Shell 命令执行可能带来以下风险：

- 命令注入攻击
- 误执行破坏性命令（如 rm -rf）
- 权限提升攻击

建议：验证所有输入、使用参数化命令、避免动态拼接命令。

### Q: 如何避免破坏性命令？

A:

- 在执行前验证命令
- 使用 `ls` 等命令先查看目标
- 使用 `-i` 参数启用交互确认

### Q: 环境变量修改为什么无效？

A: 环境变量修改仅对当前进程及其子进程有效，不会影响系统全局环境。如需永久修改，需要在 shell 配置文件（如 .bashrc）中设置。

### Q: 守护进程和普通进程有什么区别？

A: 守护进程是在后台运行的进程，通常没有终端控制，不与用户直接交互。普通进程通常与终端关联，可以接收用户输入。

### Q: 如何查看命令的输出？

A: Shell 命令的输出会通过 `stdout` 和 `stderr` 字段返回。`stdout` 是标准输出，`stderr` 是错误输出。
