这里我只是用了配置rc.local文件,其他写启动脚本的,我还不会,只会这个最简单的开机自启方法。所以把这个方法分享给大家。
有的人在/etc/rc.d/rc.local
,有的人在/etc/rc.local
, 实际上这个文件在很多地方都有!可以试试搜一下这个文件,好几个地方都有,那你要改的是哪个文件呢??
看下图,/etc/rc.local
其实是指向/etc/rc.d/rc.local
的,所以你只需要改/etc/rc.d/rc.local
。
在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是谁在哪里!所以启动失败。
这个地方,既然知道了失败原因,就可以从两方面解决:
/usr/local/python3/bin/python3 /home/user/xxxx.py >> /home/user/xxxx.log
export PYTHON_HOME=/usr/local/python/bin
,然后再写python /home/user/xxxx.py >> /home/user/xxxx.log
,绝对路径不要忘了哦!指定好redis-server 和redis.conf配置文件的绝对路径位置
命令:/usr/redis/soure/redis-4.0.6/redis-server /usr/redis/soure/redis-4.0.6/redis.conf
(举例是我centos里redis的安装路径,需要自行替换)
指定好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的安装路径,需要自行替换)
先将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的安装路径,需要自行替换)