1. 新建自定义启动java程序脚本
ex:在/root/uwb_workspace/pubsubAPI/路径下有一个start_pusub_api.sh
2. 在/etc/rc.local里面添加启动命令
cd /root/uwb_workspace/pubsubAPI/
./start_pusub_api.sh
然后重启测试发现没有起作用!!! why? WTF!!!
这是因为本机java的安装是直接解压jdk包到centos下面,java需要配置环境变量才能直接使用java cmd。linux在运行命令的时候如果没有找到程序就会去环境变量里边查找,要使配置文件起作用是需要使用source命令生效的。
以下内容引用自 https://blog.csdn.net/bbg221/article/details/78361246
在linux启动过程中,可以看成有几个阶段,比较尴尬的是环境变量配置文件生效这个操作就有点晚。 而且在rc.local文件中有这么一段话:
也就是centos7版本的时候,这个文件内的命令将会跟其他启动服务并行,不会在系统完成启动结束后再执行;这样就导致了环境变量生效在java程序启动脚本运行之后。
解决:
在java启动自定义脚本之前需要使java环境变量生效,在/etc/rc.local里面添加:
source /etc/profile