开机自启动脚本有大致三种实现方法,由于服务器centos使用的比较多,这里介绍比较记录一个比较常见的方法,通过service功能实现,系统需要centos7以上。service 命令在 CentOS 7 中主要是为了保持向后兼容性,而 systemd 则解决了传统 SysVinit 系统在启动速度、依赖管理、资源管理等方面的不足,提供了更强大和灵活的服务管理功能。
具体操作如下
//创建执行文件
sudo vim /usr/lib/systemd/system/demo.service
//编写文件
[Unit]
Description=ip check
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/sh /opt/ncCheck/ncCheck.sh
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
//准备启动
sudo systemctl daemon-reload
sudo systemctl enable daemon-reload
sudo systemctl start daemon-reload
sudo systemctl status daemon-reload
注意!!!
这里需要注意的地方是,service里面的路径,需要时绝对路径。也就是环境变量中的命令,不能直接输入,需要写全路径。例如通常执行脚本就是sh /opt/demo.sh,sh直接输入即可,但是service不能生效,需要改为/usr/bin/sh /opt/demo.sh,不然会报错的。