inittab命令格式


1. inittab命令格式为
id:runlevels:action:command
id是任意一个名称(具体是什么并不重要);
runlevels是一个数字串(代表运行级别);
command指定执行的实际命令;
action的值可以为以下几种:
respawn:启动命令并进行监视命令的执行,当进程退出时,再次执行该命令.比如切换到tty,exit后还会提示终端登陆,就因为tty是
以respaw的action方式运行的:3:2345:respawn:/sbin/mingetty tty3
wait:进入指定运行级别时,启动进程.init会停下来,直到执行完成.这个标记对于设置指定等级下的软件的启动.
once:进入指定的任一运行等级时,启动一次进程.
boot:该命令在系统引导时运行.这种类型的指令忽略运行等级.
bootwait:该命令在系统指导时运行,init等它退出后才能继续做别的事.
off:禁用所有运行等级下的某个命令.

例如在inittab最后添加一行,可以在每次启动系统的时候打印一行到/tmp/greeting。
gt::once:echo "greting `date`" >> /tmp/greeting
不过一般建议将这种执行放在 /etc/rc.d/rc.sysinit

2. 在任何时候,可以在文件inittab中添加新的记录项,级别Q/q不改变当前的运行级别,重新检查inittab文件,可以通过命令init Q或init q使init进程立即重新读取并处理文件inittab.

版权声明:本文为博主原创文章,未经博主允许不得转载。

<think>好的,用户想了解OpenWRT中inittab文件的配置和使用方法。首先,我需要回忆一下OpenWRT的基本结构。OpenWRT使用的是BusyBox作为其核心工具集,而BusyBox的init系统与传统SysVinit有所不同,所以inittab的配置可能和传统的Linux发行版不一样。 记得在BusyBox中,inittab文件位于/etc/inittab,用于定义系统启动时的初始化进程。但OpenWRT可能对此进行了修改或者简化。可能需要查阅相关文档或引用中的内容。不过用户提供的引用中没有直接提到inittab,所以可能需要依靠我的现有知识。 首先,确认OpenWRT是否使用inittab。根据之前的经验,OpenWRT默认使用procd作为其初始化系统,而不是传统的SysVinit或BusyBox init。因此,inittab可能不存在或被替代了。用户可能需要通过其他方式配置启动项,比如/etc/rc.local或init.d脚本。 不过,如果有用户手动安装了BusyBox的init,或者某些特定版本中保留了对inittab的支持,那么可能需要检查/etc/inittab是否存在。如果存在,其语法应该遵循BusyBox的格式,每一行定义了一个入口,格式为`<id>::<action>:<process>`。例如,启动getty的配置。 另外,用户可能想设置开机启动的服务或脚本,这时候可能需要使用OpenWRT的procd系统,通过创建init.d脚本,并使用/etc/init.d/中的服务来控制启动顺序。例如,使用`/etc/init.d/myservice enable`来启用服务。 另外,引用中提到dmesg、syslog的使用,以及升级固件的方法,但可能和inittab无关。但用户的问题是关于inittab的配置,所以需要集中在init系统部分。 可能还需要提醒用户,在较新的OpenWRT版本中,传统的inittab可能已被弃用,建议使用procd的方式管理服务。例如,通过创建UCI配置或者在/etc/rc.local中添加启动命令。 总结回答的结构应该是:首先说明OpenWRT默认使用procd,可能没有inittab;如果存在,如何配置;替代方法是什么;最后相关问题可能涉及procd、启动脚本、BusyBox init等。</think>### OpenWRT中inittab配置与使用方法 #### 1. OpenWRT初始化系统特性 OpenWRT默认使用轻量级初始化系统`procd`(而非传统Linux的SysVinit),因此**系统原生未提供/etc/inittab文件**。其进程管理通过以下机制实现: - `/etc/init.d/`目录下的服务脚本 - `procd`守护进程管理服务生命周期 - `/etc/rc.local`用户自定义启动脚本[^1] #### 2. BusyBox的inittab兼容方案 若需手动启用inittab支持,需通过以下步骤: ```bash # 安装BusyBox完整版(包含init功能) opkg update opkg install busybox ``` 创建配置文件: ```bash vim /etc/inittab ``` 示例配置格式: ``` ::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K shutdown ttyS0::askfirst:/bin/ash --login ``` 配置字段说明: ``` <id>:<runlevels>:<action>:<command> ``` #### 3. 替代方案推荐(推荐方式) 对于常规服务管理,建议使用OpenWRT标准方法: - **创建初始化脚本**: ```bash vim /etc/init.d/myservice ``` 模板内容: ```shell #!/bin/sh /etc/rc.common START=99 STOP=10 start() { /path/to/your/program & } stop() { killall program } ``` - **启用服务**: ```bash chmod +x /etc/init.d/myservice /etc/init.d/myservice enable ``` #### 4. 特殊场景调试技巧 若需要监控系统初始化过程,可通过以下命令查看启动日志: ```bash logread | grep -i init # 查看初始化相关日志[^1] dmesg | less # 查看内核初始化信息[^1] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值