linux 脚本开机启动
Linux 脚本开机启动
Ubuntu:
如果要添加为开机启动执行的脚本文件,可先将脚本复制或者软连接到/etc/init.d/
目录下,然后用:
update-rc.d xxx defaults number
命令(number为启动顺序), 将脚本添加到初始化执行的队列中去。
注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99,以防网络服务还没有启动。
- 将你的启动脚本复制到
/etc/init.d
目录下,以下假设你的脚本文件名为 test。
$ ln -s /root/start.sh /etc/init.d/my_test_script # 建立软连接
- 设置脚本文件的执行权限
$ sudo chmod 777 /etc/init.d/my_test_script
-
执行如下命令将脚本放到启动脚本中去:
设置启动和关闭顺序为90,级别默认
$ cd /etc/init.d
$ sudo update-rc.d my_test_script defaults 90
centOS
- 编写要开机启动的脚本:
auto_start.sh
#!/bin/sh
#chkconfig: 12345 80 90
#description:auto
echo "Started..." > start.log
注意:第2,3行代码是必须的。否则可能报错
第二行:12345 代表针对开机等级1/2/3/4/5;80 代表启动此服务的级别;90 代表关闭此服务的级别(数字越小,优先级越高)
第三行:描述而已
所以意思就是:针对启动等级12345,使用80优先级开启此脚本。针对等级06,使用90优先级关闭此脚本
- 复制到
/etc/rc.d/init.d/
或/etc/init.d/
下,或创建软连接到目录下
$ ln -s /root/auto_start.sh /etc/rc.d/init.d/auto_start.sh
- 赋予执行权限,并添加服务
$ cd /etc/rc.d/init.d
$ chmod 777 auto_start.sh
$ chkconfig --add auto_start.sh
$ chkconfig auto_start.sh on
原理:实质上就是在 rc0.d - rc6.d 目录下,分别创建了软连接
将脚本复制到 /etc/init.d/
,手动执行下面这些命令,并赋予权限,和上面步骤是一样的。第一行的 K90auto_start.sh
,注意K
代表关闭,S
代表开启。
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc0.d/K90auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc1.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc2.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc3.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc4.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc5.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc6.d/K90auto_start.sh
注:开机等级数字:
- 等级0表示:表示关机
- 等级1表示:单用户模式
- 等级2表示:无网络连接的多用户命令行模式
- 等级3表示:有网络连接的多用户命令行模式
- 等级4表示:不可用
- 等级5表示:带图形界面的多用户模式
- 等级6表示:重新启动
分类:
linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-07-29 Linux xargs命令