【故障排查】crontab开机启动nacos脚本 ERROR: Please set JAVA_HOME variable in your environment, need java(x64)

问题描述

centos7 ,jdk1.8,  nacos2.1.1 
crontab开机后调用shell脚本启动nacos 、skywalking 、sentinel

nacos的start.out日志。 nacos启动成功后,过了一会儿关掉了,这就奇怪了。reboot几次机器,问题依旧。
在这里插入图片描述
单独在黑窗口运行bash startMicroServer.sh 是正常的。
看他的startup.sh ,也有nohup + &后台运行。按理关黑窗口照样跑的。
在这里插入图片描述

#最初的写法:
root@node5-db ~]# crontab -l
@reboot /root/myScript/startMicroServer.sh 
[root@node5-db ~]# cat /root/myScript/startMicroServer.sh 
#!/bin/bash
#01 nacos
#http://192.168.79.35:8848/nacos
cd /root/k8sFile/project/microServer/01-nacos/nacos/bin
bash startup.sh -m standalone 
sleep 30

#02 sentinel
#http://192.168.79.35:8718/
cd /root/k8sFile/project/microServer/02-sentinel
nohup java -Dserver.port=8718 \
-Dcsp.sentinel.dashboard.server=localhost:8718 \
-Dproject.name=sentinel-dashboard \
-Dcsp.sentinel.api.port.port=8719 \
-jar sentinel-dashboard-1.8.5.jar &> /var/log/sentinel.log &
sleep 30

#03 skywalking
#http://192.168.79.35:8080/
cd /root/k8sFile/project/microServer/03-skywalking/apache-skywalking-apm-bin/bin
sh startup.sh 

排查过程:

在/var/log/cron看不出可用的消息。在crontab加上重定向日志
@reboot /root/myScript/startMicroServer.sh >/tmp/startMicro.log 2>&1

大致日志截图(/var/log/messages的) 与startMicro.log类似内容:
在这里插入图片描述

#文字版:
2689 Apr 21 11:59:14 node5-db systemd: mdcheck_start.timer lacks value setting. Refusing.
42690 Apr 21 11:59:15 node5-db systemd: Starting nacos...
42691 Apr 21 11:59:15 node5-db startup.sh: which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
42692 Apr 21 11:59:15 node5-db startup.sh: readlink: 缺少操作数
42693 Apr 21 11:59:15 node5-db startup.sh: Try 'readlink --help' for more information.
42694 Apr 21 11:59:15 node5-db startup.sh: dirname: 缺少操作数
42695 Apr 21 11:59:15 node5-db startup.sh: Try 'dirname --help' for more information.
42696 Apr 21 11:59:15 node5-db startup.sh: ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
42697 Apr 21 11:59:15 node5-db systemd: nacos.service: control process exited, code=exited status=1
42698 Apr 21 11:59:15 node5-db systemd: Failed to start nacos.
42699 Apr 21 11:59:15 node5-db systemd: Unit nacos.service entered failed state.
42700 Apr 21 11:59:15 node5-db systemd: nacos.service failed.
42701 Apr 21 12:00:01 node5-db systemd: Started Session 6 of user root.
42702 Apr 21 12:00:45 node5-db systemd: Starting Cleanup of Temporary Directories...
42703 Apr 21 12:00:45 node5-db systemd: Started Cleanup of Temporary Directories.
42704 Apr 21 12:01:01 node5-db systemd: Started Session 7 of user root.
42705 Apr 21 12:06:27 node5-db systemd: Starting nacos...
42706 Apr 21 12:06:27 node5-db startup.sh: which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
42707 Apr 21 12:06:27 node5-db startup.sh: readlink: 缺少操作数
42708 Apr 21 12:06:27 node5-db startup.sh: Try 'readlink --help' for more information.
42709 Apr 21 12:06:27 node5-db startup.sh: dirname: 缺少操作数
42710 Apr 21 12:06:27 node5-db startup.sh: Try 'dirname --help' for more information.
42711 Apr 21 12:06:27 node5-db startup.sh: ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
42712 Apr 21 12:06:27 node5-db systemd: nacos.service: control process exited, code=exited status=1
42713 Apr 21 12:06:27 node5-db systemd: Failed to start nacos.
42714 Apr 21 12:06:27 node5-db systemd: Unit nacos.service entered failed state.
42715 Apr 21 12:06:27 node5-db systemd: nacos.service failed.
42716 Apr 21 12:08:50 node5-db yum[2237]: Erased: parfait-0.5.4-2.el7.noarch

处理方法:

在脚本中加上java环境变量。
export JAVA_HOME=/opt/software/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin

小结

这个让我想到了制作tomcat启动脚本时,也是要添加java环境变量。

起初被nacos的start.out报错信息困惑了。以后写crontab时,要追加日志信息log,方便排查。
@reboot /root/myScript/startMicroServer.sh >/tmp/startMicro.log 2>&1

以后碰到java项目类似的启动,最好先在脚本添加java环境变量。
当然也可以使用systemd来开启/关闭nacos
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值