Minix中使用mined调用shutdown报错12,求修改源码方法
解决Minix中mined调用shutdown报错12及修改shutdown源码的操作步骤
1. 定位shutdown源码文件
Minix的系统工具源码默认存放在/usr/src目录下,通过以下命令查找shutdown的源码:
cd /usr/src find . -name "shutdown.c"
通常会在/usr/src/minix/commands/shutdown/路径下找到目标文件。
2. 获取源码编辑权限
Minix默认系统文件为只读状态,需切换至root用户才能编辑源码:
su root cd /usr/src/minix/commands/shutdown/ vi shutdown.c
3. 排查错误12根源并修改源码
Minix中错误码12通常对应参数不合法或调用方式不符合工具要求。结合你遇到的场景,可从以下方向修改:
- 查看
shutdown.c中main函数的参数解析逻辑(比如getopt部分),确认是否兼容mined传递的参数格式 - 若需调整关机逻辑(如修改关机延迟、添加提示信息),直接定位对应代码段修改即可
- 注意:shutdown默认需root权限执行,若要兼容普通用户调用,可在源码中添加权限判断的兼容处理(不推荐,存在安全风险)
4. 重新编译并替换shutdown程序
修改完成后,在源码目录执行编译命令:
make
编译生成新的二进制文件后,替换系统默认的shutdown程序:
cp shutdown /sbin/shutdown
额外说明
- 你之前执行
cd /shutdown、vi /shutdown失败,是因为shutdown是二进制程序而非目录,它的默认路径为/sbin/shutdown - 若错误12是mined调用时参数错误导致,也可检查mined的配置文件,确认它调用shutdown时传递的参数是否符合要求
内容的提问来源于stack exchange,提问作者Влад Солодов
相关产品推荐
相关产品推荐

