利用rc.local文件开机自启服务
例如源码安装nginx:绝对路径启动命令是 /usr/local/nginx/sbin/nginx
每次开机需要手动启动,我们自己实验还可以 ,可是上线环境就不好使了,那么如何加入开机自启呢?(这里介绍借助/etc/rc.local 文件进行开机自启,具体原理可以看看Linux启动流程即可,这里只说了如何使用!)
可以放在 /etc/rc.local 文件中, /etc/rc.local 是/etc/rc.d/rc.local 的系统链接文件
[root@localhost /]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 6月 1 07:01 /etc/rc.local -> rc.d/rc.local #( /etc/rc.local 是/etc/rc.d/rc.local 的系统链接文件)
此时在 /etc/rc.local加入想要执行的命令或者脚本,如:加入启动nginx命令 /usr/local/nginx/sbin/nginx
[root@localhost /]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local #(系统自带)
/usr/local/nginx/sbin/nginx #(加入的nginx启动命令)
但是你reboot机器后却发现无法启动nginx服务,那是因为/etc/rc.d/rc.local没有执行权限,虽然/etc/rc.local有权限,但是它是链接文件,/etc/rc.d/rc.local这个才是根文件,所以给/etc/rc.d/rc.local加上执行权限就好
[root@localhost ~]# ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 534 6月 9 12:16 /etc/rc.d/rc.local
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
[root@localhost ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 534 6月 9 12:16 /etc/rc.d/rc.local