在工作用可以我们需要某些脚本需要在系统启动时自动执行一些脚本或者启动一些服务,在windows下我们有很多方式来处理,但是在linux下如何执行呢?
![Linux系统下如何设置开机自动运行脚本?](http://img.jiangsulong.com/230303/1K44H196-0.jpg)
文章插图
今天分享一下3种常用的开机启动运行的方法供参考
1、修改 /etc/rc.d/rc.local 文件方式/etc/rc.d/rc.local 用于用户自定义开机启动程序,因此可以往里写开机要执行的命令或脚本 。
1、设置 rc.local 的可执行权限# chmod +x /etc/rc.d/rc.local2、创建待执行的脚本,如下:# cat /home/test.sh#!/bin/bashecho "hello world" >> /home/out.txtdate >> /home/out.txt3、设置脚本的可执行权限# chmod +x /home/test.sh4、把脚本放到 /etc/rc.d/rc.local 尾部# cat /etc/rc.d/rc.local... /home/test.sh5、重启系统使之生效# reboot6、查看日志文件判断脚本是否执行# cat /home/out.txthello worldThu Dec 30 20:45:00 CST 2021
有关 /etc/rc.d/rc.local 执行时机如下:![Linux系统下如何设置开机自动运行脚本?](http://img.jiangsulong.com/230303/1K44Jb1-1.jpg)
文章插图
2、使用 crontab 方式crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务 。
因此我们可以使用 crondtab 命令创建一个任务,让该任务在重启时进行执行 。
# crontab -e//进入编辑,输入如下行@reboot /home/test.sh//重启设备# reboot //查看日志# cat /home/out.txthello worldThu Dec 30 21:09:03 CST 2021
3、使用 systemd 服务Systemd 服务是一种以 .service 结尾的单元(unit)配置文件,用于控制由 Systemd 控制或监视的进程 。简单说,用于后台以守护进程(daemon)的形式运行程序 。systmd service 文件一般放在/etc/systemd/system/文件夹中 。
创建一个服务如下
//在/etc/systemd/system/下创建一个服务,如下# vim ser.service//[Unit] 区块:启动顺序与依赖关系 。[Unit]//Description字段给出当前服务的简单描述Description=Run a Custom Script at StartupAfter=default.target//Service区块定义如何启动当前服务[Service]//ExecStart字段:定义启动进程时执行的命令ExecStart=/home/test.sh//Install区块,定义如何安装这个配置文件,即怎样做到开机启动[Install]//WantedBy字段:表示该服务所在的 Target,Target的含义是服务组,表示一组服务WantedBy=default.target//更新服务配置文件,并使能服务# systemctl daemon-reload# systemctl enable ser.service//重启系统# reboot
有关 systemd 服务还有很多实用方式,本文知识做到抛砖引玉的作用,有兴趣的话可以自行研究这方面的知识 。【Linux系统下如何设置开机自动运行脚本?】
推荐阅读
- Linux 进程管理之进程调度与切换
- 如何寻找并删除系统里的重复文件,快速释放磁盘空间?
- 机器学习系统架构的十个要素
- 想成为大牛,不得不懂的五种Linux网络IO模型
- 你的应用安全吗?开源API越权漏洞检测系统奉上!
- 百福具臻怎么读 臻怎么读
- 不辣不辣123 不辣不辣
- prince什么意思
- 分级基金下折怎么计算_分级基金的份额折算什么意思
- 怎么系统还原? 怎么系统还原