很多时候由于各种各样的原因,使得我们无法使用systemctl、service、chkconfig命令来设置服务开机自启。此时我们一般会用到/etc/rc.d/rc.local(用户自定义服务脚本)来设置服务的开机自启。(具体可查看:CentOS6启动流程(含详细流程图))。
当使用到/etc/rc.d/rc.local时,首先查看下该文件是否拥有执行权限,如果没有执行权限请添加。
[root@CentOS7 ~]# ll /etc/rc.d/rc.local #如果没有ll请使用ls -l替代 -rw-r--r-- 1 root root 473 Aug 7 2020 /etc/rc.d/rc.local [root@CentOS7 ~]# chmod +x /etc/rc.d/rc.local #添加执行权限
接着需要考虑服务的启动脚本使用哪个用户启动,例如存在一个服务启动脚本,已将其所有者和所有者者组设置为tc,此时想以tc用户启动脚本,那么命令如下:
[root@CentOS7 ~]# su - tc -c 'sh [脚本文件绝对地址]'
那么想要实现服务开机自启也就显而易见了,如下:
[root@CentOS7 ~]# echo "su - tc -c 'sh [脚本文件绝对地址]'" >> /etc/rc.d/rc.local
当然也可以直接使用vi或vim进入文件内添加。