在【/etc/rc.d/init.d】目录下创建jar_auto.sh文件
vim /etc/rc.d/init.d/jar_auto.sh
#!/bin/bash
#配置jdk的路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#配置jar包启动的路径 日志生成路径 nohup表示静默启动,不在窗口显示启动日志
nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /home/projects/java/a.jar > /home/projects/java/mylog.log
编辑【/etc/rc.d/rc.local】文件
vim /etc/rc.d/rc.local
添加jar自启动脚本所在的目录,添加的内容如下
/etc/rc.d/init.d/jar_auto.sh
赋予sh脚本777:chmod +x /etc/rc.d/init.d/jar_auto.sh
赋予rc.local文件执行权限
chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.local
重启
reboot
如果失败,输入命令查看具体问题原因
systemctl status rc-local.service
/bin/bash^M: 坏的解释器:…件或目录
参考:【Linux】 /bin/bash^M: 坏的解释器: 没有那个文件或目录[已解
原因:Windows 10 系统下编辑了一个shell脚本文件,然后copy到了远程的Linux服务器,这个文件在Windows下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有多出来的\r。
解决:sed -i 's/\r$//' xxx.sh