Linux系统设置开机自动运行脚本的方法
方法1 rc.local
/etc/rc.d/rc.local文件会在linux系统各项服务都启动完毕后再被运行,可以将脚本路径加到该文件里
1)确保权限
chmod +x /etc/rc.d/rc.local
2)创建脚本
cat /home/zxg/auto_run_1.sh
#!/bin/bash
date >>/home/zxg/dateout.txt
hostname >>/home/zxg/hostnameout.txt
chmod +x /home/zxg/auto_run_1.sh
3)编辑/etc/rc.d/rc.local文件
vim /etc/rc.d/rc.local
/home/zxg/auto_run_1.sh
4)重启验证
reboot
[root@localhost zxg]# init 6
Last login: Tue Aug 11 15:00:13 2020 from 10.211.55.2
[root@localhost ~]# cat /home/zxg/hostnameout.txt
localhost
[root@localhost ~]# cat /home/zxg/dateout.txt
Tue Aug 11 15:02:32 CST 2020
[root@localhost ~]#
方法2 计划任务crontab
crontab是linux下的计划任务,当时间达到设定的时间运行任务,crontab有个特殊任务叫@reboot。就是重启后运行的任务
1)使用crontab -e
crontab -e
@reboot /home/zxg/auto_run_1.sh
2)重启验证
reboot
Last login: Tue Aug 11 15:02:33 2020 from 10.211.55.2
[root@localhost ~]# cat /home/zxg/hostnameout.txt
localhost
[root@localhost ~]# cat /home/zxg/dateout.txt
Tue Aug 11 15:05:21 CST 2020
[root@localhost ~]#
方法3 systemd 服务
systemd系统centos7+以后支持,也可以ps aux 查看pid为1的是不是systemd
1)确认能不能使用systemd
[root@localhost ~]# ps -e
PID TTY TIME CMD
1 ? 00:00:01 systemd
2)编辑{xxx.service文件}
创建一个systemd启动服务,并放在/etc/systemd/system/目录下
vim auto_run_1.service
[Unit]
Description=Run a Custom Script at Startup
After=default.target
[Service]
ExecStart=/home/zxg/auto_run_1.sh
[Install]
WantedBy=default.target
3)更新配置文件及启动服务
systemctl daemon-reload
systemctl enable auto_run_1.service
4)重启验证
reboot
[root@localhost ~]# cat /home/zxg/dateout.txt
Tue Aug 11 15:05:21 CST 2020
Tue Aug 11 15:07:49 CST 2020
[root@localhost ~]# cat /home/zxg/hostnameout.txt
localhost
localhost
[root@localhost ~]#