Redian新闻
>
Linux开机启动方案

Linux开机启动方案

公众号新闻

一.系统服务

如果组件已经安装为系统服务,默认服务文件为 xxx.service,存储在 /usr/lib/systemd/system

可以使用以下2种方式设置开机启动

systemctl方式

systemctl enable/disable xxx 指令设置/取消开机启动
--查看是否开机启动[root@localhost system]# systemctl status chronyd.service chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-07-28 18:33:39 CST; 4 months 4 days ago Docs: man:chronyd(8) man:chrony.conf(5) Main PID: 790 (chronyd) Memory: 1.0M CGroup: /system.slice/chronyd.service └─790 /usr/sbin/chronyd
systemctl list-unit-files# 查看服务的自启动状态以list-unit-files为准# 但是系统服务太多,我想分类查看该如何做?# 查看系统中已经enable的服务systemctl list-unit-files --state=enabled systemctl is-enabled# 查看系统中已经disable的服务systemctl list-unit-files --state=disabled systemctl is-enabled
# --state还可以与list-units结合使用,具体可使用以下命令查询用法systemctl --state=help

 

chkconfig方式(较复杂)


chkconfig --add xxx && chkconfig --level 3 xxx on/off,本方式要求服务脚本文件必须在 /etc/init.d/ 目录下,且结合 /etc/rc.d/rc0.d~rc6.d目录实现,同时服务脚本文件必须包含必要的头部脚本代码,较复杂
--查看是否开机启动chkconfig --list network注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'查看在具体 target 启用的服务请执行 'systemctl list-dependencies [target]'
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关

 

特别关注:systemctl方式实际效果

该方式实际是在 /etc/systemd/system/xxx/ 或 /etc/systemd/user/下创建 .service文件 的软连接,分别代表系统服务与用户服务。

其中,xxx为该服务的适用模式,如网络服务network-online.target.wants、多用户服务multi-user.target.wants。

[root@localhost ~]# systemctl enable mysqldCreated symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

该方式下,取消卡机启动,可以执行以下操作之一

  • systemctl disable xxx

  • 移除 /etc/systemd/system/xxx/ 或 /etc/systemd/user/ 下相应软连接或服务文件

 

二.通用方案

不管组件是否已经安装为系统服务,可以通过开机启动脚本实现

注意,以下操作,均需要设置相关脚本的可执行权限,即 chmod +x 启动脚本

  • 方法一:追加启动命令到默认启动脚本 /etc/rc.local,或/etc/rc.d/rc.local,前者是后者的软连接

  • 方法二:编写启动脚本.sh,放到目录 /etc/profile.d下

  • 方法三:编写启动脚本.sh,将脚本的执行指令追加到 /etc/rc.local,或/etc/rc.d/rc.local

 

三.crontab方案

crontab支持特殊关键字实现特定任务调度,代替 5个时间设置标识符(分 时 日 月 周),特殊语法以 @ 符号作为前缀

具体请参考:官方文档

语法:@xxx command

@reboot    :    Run once after reboot.      重启时执行一次,实测比 /etc/rc.d/rc.local 更早执行(提前1-2s),比默认1分钟定时提前30s左右@yearly    :    Run once a year, ie.  "0 0 1 1 *".  一年执行一次,1100分执行@annually  :    Run once a year, ie.  "0 0 1 1 *". 一年执行一次,1100分执行@monthly   :    Run once a month, ie. "0 0 1 * *". 一月执行一次,每月100分执行@weekly    :    Run once a week, ie.  "0 0 * * 0". 一周执行一次@daily     :    Run once a day, ie.   "0 0 * * *".  一天执行一次@hourly    :    Run once an hour, ie. "0 * * * *".  一小时执行一次

即,可以使用 @reboot 关键字实现开机启动功能,示例如下

[root@localhost daemonProcess]# crontab -e
# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * command to be executed
#开机启动@reboot /usr/local/daemonProcess/somescript.sh
#守护* * * * * /usr/local/daemonProcess/somescript.sh


特别关注:

是否同时使用 @reboot 和 定时,需要根据实际业务需要来决定。

如果守护定时设置为1分钟,即 * * * * *,则建议不再设置 @reboot,因为两者在开机启动后的1分钟内,都会执行,可能会造成重复执行,如果所守护的应用服务兼容重复启动,没有问题,如果不兼容,建议使用一种方案。

如果守护定时间隔比较大,还是建议同时使用 @reboot,保证应用服务及时启动。

 

四.生产环境开机启动方案建议

以上3种方案,建议在生产环境只采用一种,所有组件、服务统一,便于服务较多时快速运维。

比如,有些服务默认安装时不会自动生成 系统服务,所以方案一的方式不能适用生产环境中所有组件、服务,如果此时按照各组件、服务分别制定开机启动方案,则在后续如果服务启动异常 或 服务发版时,就需要明确识别各服务的开机启动方案,然后做相应的操作,提高运维成本,增加出错概率。

 

附录:开机启动脚本示例

1.追加启动命令到 /etc/rc.local,或/etc/rc.d/rc.local,前者是后者的软连接2.编写启动脚本.sh,放到目录 /etc/profile.d下
---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
#redis/usr/local/redis/redis-5.0.13/bin/redis-server /usr/local/redis/redis-5.0.13/conf/redis.conf
#zk#zk pid文件必须先删除后重启rm -f /data/zookeeper/data/zookeeper_server.pid;/usr/local/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start
#kafkaJMX_PORT=9999 /usr/local/kafka_2.13-2.7.1/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.13-2.7.1/config/server.properties
#kafka-manager#kafka-manager pid文件必须先删除后重启rm -f /usr/local/kafka-manager-2.0.0.2/RUNNING_PIDnohup /usr/local/kafka-manager-2.0.0.2/bin/kafka-manager -Dconfig.file=/usr/local/kafka-manager-2.0.0.2/conf/application.conf -Dhttp.port=9002 >/dev/null 2>&1 &
#mysqlservice mysqld start


链接:https://www.cnblogs.com/xiaoyaozhe/p/17671260.html

(版权归原作者所有,侵删)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
linux监控命令全覆盖(图文说明)手机一开机,未来尽毁——名校中国博士境外归来即遭逮捕,面临12年重刑!插队起薪10万美元,SpaceX开高薪,导致NASA难招人才安波福首推国产单芯片舱行泊一体方案,本土化高阶智驾方案将量产绿色金融 | 产品碳足迹将成为我国供应链低碳转型的重要抓手—评《上海市加快建立产品碳足迹管理体系 打造绿色低碳供应链的行动方案》带你走向linux企业防火墙QQ 更新Linux 3.2.6、Win 9.9.8、Mac 6.9.30 版本:新增好友备注、拖拽文件发送功能87、长篇家庭伦理小说《嫁接》第二十三章 爱断情殇(2)德国大陆集团子公司 Elektrobit 开源基于 Ubuntu 的 Linux 车载操作系统解决方案明天可能交易Linux常用的网络命令超实用!满足等保要求的基线核查脚本:linux & Windows谁再说不熟悉 Linux,就把这个 PDF 扔给他!开机不喝酒!美航空公司飞行员因“酒驾”被开除。闹大了!66升油箱加出67升汽油,车主报警后,员工火速开机调试你必须知道的Linux系统安全配置「最佳的抗皱塑形运动方案」研究表明:这两类运动可有效延缓皮肤衰老,特别是对于女性!宇宙人(1486期)景海鹏、朱杨柱、桂海潮获颁奖章;SpaceX开始打击星链“黑户”;四维高景三号01星传回首张卫星图片;美股基本面 - 2024_02_21 * 晚报 * 收盘:美股收盘涨跌不一 纳指连续第三日收跌。美国黄金期货周三收跌0.3%。冰岛伊萨菲厄泽(Isafjordur),岸的那边九部门数字人才培育行动方案来了!一文速览要点System76 推出 Lemur Pro Linux 笔记本:酷睿 Ultra 处理器,1399 美元起39 项 Linux 基准测试:英伟达数据中心 CPU Grace 媲美 Threadripper 7000Linux 内存相关问题大汇总!Red Hat Linux 企业版云部署定价模型调整AMD Zen5越来越近了!Linux GCC编译器已支持北京海淀打响具身智能争夺战:公布三年行动方案,部署六大行动linux磁盘管理LVM的使用AMD 的努力以失败告终,无法为 Linux 开源驱动提供 HDMI 2.1+ 功能网飞新片《皇室丑闻夜》正式预告;《爱情神话》平行篇《好东西》开机Linux之父 Linus Torvalds 在技术上可谓是从不私藏,也绝不闭门造车Linux服务器CPU持续飙高原因排查离不开这几步!又疯一个?起飞后男子突然打开机舱门,5乘客感觉联合制服,惊险画面曝光。零长度数组没有意义?那是你不懂!看Linux内核中怎么高级玩它?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。