如何提升网站百度权重,宁波如何建网站,wordpress定制分类,给别人做网站别人经营违法一、引言
在 Linux 系统中#xff0c;设置服务开机自启动是常见的系统配置任务。本文档详细介绍了多种实现服务开机自启动的方法#xff0c;包括 systemctl 方式、通用脚本方式、crontab 方案等#xff0c;并提供了生产环境下的方案建议和开机启动脚本示例。
二、systemct…一、引言
在 Linux 系统中设置服务开机自启动是常见的系统配置任务。本文档详细介绍了多种实现服务开机自启动的方法包括 systemctl 方式、通用脚本方式、crontab 方案等并提供了生产环境下的方案建议和开机启动脚本示例。
二、systemctl 方式
2.1 适用范围 适用于已安装为系统服务且服务文件.service存储在/usr/lib/systemd/system的组件。 2.2 设置开机启动 使用systemctl enable xxx指令设置开机启动其中xxx为服务名。例如设置mysqld服务开机启动
systemctl enable mysqld会在/etc/systemd/system/xxx/系统服务或/etc/systemd/user/用户服务下创建.service 文件的软连接。如mysqld服务会创建从/etc/systemd/system/multi - user.target.wants/mysqld.service到/usr/lib/systemd/system/mysqld.service的软连接。 2.3 取消开机启动 执行systemctl disable xxx或者手动移除/etc/systemd/system/xxx/或/etc/systemd/user/下相应软连接或服务文件。 2.4 查看开机启动状态 使用systemctl status xxx查看服务当前状态及是否开机启动。例如查看mysql服务
systemctl status mysqld2.5 分类查看服务 查看系统中已经enable的服务
systemctl list-unit-files --stateenabled
systemctl list-enabled查看系统中已经disable的服务
systemctl list-unit-files --statedisabled
systemctl list-enabled三、chkconfig 方式
3.1 适用条件 服务脚本文件必须在/etc/init.d/目录下且结合/etc/rc.d/rc0.d~rc6.d目录实现同时服务脚本文件必须包含必要的头部脚本代码。 3.2 设置开机启动 使用
chkconfig --add mysql
chkconfig --level 3 mysql on/off其中mysqld为服务名–level 3表示在运行级别 3 下设置开机启动或关闭。 3.3 查看开机启动状态 使用
chkconfig --list mysql四、通用脚本方式
4.1 适用范围 不管组件是否已安装为系统服务均适用。 4.2 方法一追加启动命令到默认启动脚本 将启动命令追加到/etc/rc.local或/etc/rc.d/rc.local前者是后者的软连接。需要先赋予/etc/rc.d/rc.local可执行权限。
chmod x /etc/rc.d/rc.local
echo /usr/local/your_service_start_command /etc/rc.d/rc.local4.3 方法二编写启动脚本并放置在特定目录 编写启动脚本.sh放置到/etc/profile.d目录下。脚本需设置可执行权限如
chmod x /etc/profile.d/your_service_start.sh4.4 方法三编写启动脚本并追加执行指令到默认启动脚本 编写启动脚本.sh设置可执行权限后将脚本的执行指令追加到/etc/rc.local或/etc/rc.d/rc.local。例如
chmod x /usr/local/your_service_start.sh
echo /usr/local/your_service_start.sh /etc/rc.d/rc.local五、crontab 方案 5.1 适用范围 适用于需要灵活调度任务的场景可实现开机启动以及按特定时间间隔执行任务。 5.2 设置开机启动 使用reboot关键字实现开机启动功能。例如开机时执行/usr/local/daemonProcess/somescript.sh脚本
crontab -e#### 在打开的文件中添加以下内容
reboot /usr/local/daemonProcess/somescript.sh5.3 特殊关键字及执行时间 reboot重启时执行一次实测比/etc/rc.d/rc.local更早执行提前 1 - 2s比默认 1 分钟定时提前 30s 左右。 yearly一年执行一次1 月 1 号 0 点 0 分执行等同于annually。 monthly一月执行一次每月 1 号 0 点 0 分执行。 weekly一周执行一次即0 0 * * 0。 daily一天执行一次即0 0 * * *。 hourly一小时执行一次即0 * * * 。 5.4 特别注意 是否同时使用reboot和定时任务需根据实际业务需要决定。若守护定时设置为 1 分钟即 * * * *建议不再设置reboot以免开机启动后的 1 分钟内重复执行若守护定时间隔较大建议同时使用reboot确保应用服务及时启动。
六、生产环境开机启动方案建议
在生产环境中建议只采用一种开机启动方案确保所有组件、服务统一便于服务较多时的快速运维。比如有些服务默认安装时不会自动生成系统服务所以 systemctl 方式不能适用生产环境中所有组件、服务。如果此时按照各组件、服务分别制定开机启动方案则在后续如果服务启动异常或服务发版时就需要明确识别各服务的开机启动方案然后做相应的操作提高运维成本增加出错概率。
七、开机启动脚本示例
7.1 追加启动命令到 /etc/rc.local 或 /etc/rc.d/rc.local
chmod x /etc/rc.d/rc.local# 开机启动脚本/usr/local/AutoStartOnBoot.sh
chmod x /usr/local/AutoStartOnBoot.sh
# 本脚本需要依赖/etc/rc.d/rc.local
# rc.local在加载环境变量之前执行所以此处需要人工加载
source /etc/profile八、总结
通过本文档介绍的多种开机自启动方案用户可以根据不同的服务类型和业务需求选择最合适的方法来实现 Linux 系统服务的开机自启动。在生产环境中统一的开机自启动方案有助于降低运维成本提高系统的稳定性和可维护性。