配置了一天Centos开机自启,最后终于成功了,网上的博客真的千篇一律,仿佛是互抄的,只是说要写rc.local,要改权限,但我试了依旧失败,如果你也是这样,试试我的这个博客!
一、配置Centos开机自启方法
这里我只是用了配置rc.local文件,其他写启动脚本的,我还不会,只会这个最简单的开机自启方法。所以把这个方法分享给大家。
二、rc.local文件在哪?
有的人在/etc/rc.d/rc.local
,有的人在/etc/rc.local
, 实际上这个文件在很多地方都有!可以试试搜一下这个文件,好几个地方都有,那你要改的是哪个文件呢??
三、你要改的是/etc/rc.d/rc.local
看下图,/etc/rc.local
其实是指向/etc/rc.d/rc.local
的,所以你只需要改/etc/rc.d/rc.local
。
四、rc.local文件启动python程序(举例,后面说其他服务启动)
在Centos环境里,你一般启动命令时,是不是这样,还顺带指定了输出的log日志位置,python xxxx.py >> xxxx.log
。 然后其他博客告诉你,你不能写相对路径,要写绝对路径。
然后你改成了这样python /home/user/xxxx.py >> xxxx.log
,开机自启还是失败!
为什么呢???
五、启动失败是因为没有改权限嘛?
这时候你去查博客,大家都会告诉你,要改rc.local的权限。更改命令是chmod +x /etc/rc.d/rc.local
,我给权限改成777.
这里大家注意,权限是必须要改的,但是改了权限还是失败!
这个时候我已经疯了!到底是咋回事!!怎么还不成功?问题在哪里?
六、启动失败的原因!
1、失败原因一:绝对路径
这里说的绝对路径,是所有的文件都要绝对路径,包括你要输出的log文件,都要指定成绝对路径。也就是/home/user/xxxx.py >> /home/user/xxxx.log
2、失败原因二:环境变量还没有加载完全
也就是在开机自启rc.local文件时,找不到python是谁在哪里!所以启动失败。
这个地方,既然知道了失败原因,就可以从两方面解决:
- ① python也指定绝对路径,让开机自启找到python的路径,也就是可以这样
/usr/local/python3/bin/python3 /home/user/xxxx.py >> /home/user/xxxx.log
- ② 可以在执行python语句前将python注册到语句之前,就是在这条语句前加一句
export PYTHON_HOME=/usr/local/python/bin
,然后再写python /home/user/xxxx.py >> /home/user/xxxx.log
,绝对路径不要忘了哦!
七、配置开机自启redis
指定好redis-server 和redis.conf配置文件的绝对路径位置
命令:/usr/redis/soure/redis-4.0.6/redis-server /usr/redis/soure/redis-4.0.6/redis.conf
(举例是我centos里redis的安装路径,需要自行替换)
八、配置开机自启mongo
指定好mongod和mongdb.conf的绝对路径。
命令:/usr/mongodb/mongodb-linux-x86_64-3.4.18/bin/mongod -f /usr/mongodb/mongodb-linux-x86_64-3.4.18/bin/mongodb.conf
(举例是我centos里mongo的安装路径,需要自行替换)
九、配置开机自启zookeeper
先将java环境引入,再启动zookeeper
命令:export JAVA_HOME=/usr/java/jdk8/jdk1.8.0_144
命令:/usr/zk/zookeeper-3.4.13/bin/zkServer.sh start
(举例是我centos里jdk1.8的安装路径,需要自行替换)
十、我的配置文件如下图,可以对照
希望这篇博客对你有帮助哦~~