centos设置开机执行shell,实现启动java jar包项目

wylc123 1年前 ⋅ 563 阅读

1. 首先编写shell脚本

#!/bin/sh
nohup java -jar /usr/softs/apps/mblog-latest.jar > /usr/softs/apps/mblog.log &
nohup java -jar /usr/softs/apps/Webstack-Guns-nkt-1.0.jar > /usr/softs/apps/nav.log &
nohup java -jar /usr/softs/apps/mblog-songbin.jar > /usr/softs/apps/mblog_songbin.log &

2. 给shell脚本添加可执行权限

chmod +x /usr/softs/apps/mblog-start.sh

3. 在rc.local增加启动代码就可以了。

vi /etc/rc.local

增加代码:

#一般配置的java环境变量在启动时会失效,所以得有这刷新一下环境变量
source /etc/profile
/usr/softs/apps/mblog-start.sh

遇到的问题:

报错:nohup: failed to run command 'java': No such file or directory

原因就是没有设置source /etc/profile

通过另一种办法也可以解决这个问题:

原因分析:
通过脚本执行Java命令时确报错找不到java。这是由于脚本执行命令的时候会默认区/usr/bin里面去找java

解决方案:
java的bin配置软链接映射到/usr/bin目录下

#查看jdk安装目录
echo $JAVA_HOME

#cd到usr/bin目录下
cd /usr/bin

#配置软链接映射
ln -s -f JDK所在路径/bin/java

注意:

执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
  在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
  chmod +x /etc/rc.d/rc.local #这一步必不可少,否则开机启动不成功

---用到的额外linux命令

#systemctl list-units --type=service #来查看一下所有的开启启动项目里面有没有这个rc-local这个服务。
#systemctl status rc-local.service #来查看一下当前是怎么个状态
然后:
#systemctl enable rc-local.service
#systemctl start rc-local.service
#手工添加下开机启动或者手工起一下看报错信息。

另外:服务的启动文件是存放在了:/lib/systemd/system/目录下面,如果不记得这个服务的全称可以来这个目录下面看。


相关文章推荐

全部评论: 0

    我有话说: