配置Linux开机启动脚本(基于initd)
本文的操作在我的Ubuntu 18.04上并不能正常工作,我觉得这和系统启动是使用initd还是systemd有关
检查根进程是initd还是systemd
通过
1 | pstree -p|head -1 |
或
1 | ps -ef|awk '($2==1)' |
可以看到系统的1号进程,也就是启动全部进程的根进程是initd还是systemd。
systemd参考 配置Linux开机启动脚本(基于systemd)
创建开机启动脚本
先将脚本放在 /etc/init.d/
下,例如脚本名为 new_service.sh
执行如下指令,在这里90表明一个优先级,越高表示执行的越晚
1 | cd /etc/init.d/ |
创建完成会在 /etc/rc*.d/
下生成相应的软连接
rc后面的数字含义
- 0 Halt the system 停机(千万不要把 initdefault 设置为0),机器关闭
- 1 Single user mode 单用户模式,与 Win9x 下的安全模式类似
- 2 Basic multi user mode 基本多用户模式,没有 NFS 支持
- 3 Multi user mode 完整的多用户模式,是标准的运行级
- 4 None 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
- 5 Multi user mode with GUI 就是X11,进到XWindow系统了
- 6 Reboot the system 重新启动(千万不要把initdefault 设置为6),运行 init 6 机器就会重启
- S, s Single user mode
软连接开头为Kxx或Sxx,Kxx表示不启动(似乎和这个文件不存在一样),Sxx表示启动,xx是启动顺序,01~99。
移除开机启动脚本
1 | sudo update-rc.d -f new_service.sh remove |