在Linux服务器上设置开机启动jar包,服务器重启时就会自动运行项目,实现半自动化,实现思路如下。
方法一:
1、在jar包同级目录下创建执行脚本
vim auto_start.sh #脚本名随意#以下是脚本内容export JAVA_HOME=/xx/jdk8 #Linux系统下JAVA_HOME地址,使用which java命令在linux里可查询到export PATH=$JAVA_HOME/bin/:PATHnohup java -jar /xx/xxx.jar > /xx/out.log 2>1& #前面xx是jar包路径,后面xx是日志路径chmod 777 /xx/out.log #日志文件授权
2、自启动脚本文件保存后退出(按Esc键 :wq),文件授权
chmod +x /xx/auto_start.sh #脚本文件的全路径
3、修改/etc/rc.d/rc.local
vim /etc/rc.d/rc.local#在最下面添加脚本文件全路径,保存退出/xx/auto_start.sh
4、重启测试
reboot
5、待服务器重启后通过命令查看jar包是否运行
ps -ef | grep jar
完成?!
方法二(与方法一差不多):
1、在jar包同级目录下创建执行脚本
vim auto_start.sh #以下是脚本内容su - root nohup java -jar/xx/xx/xx.jar & #使用root用户,开机自启动jar包
2、授权
chmod -R 755 /xx/auto_start.sh
3、更改/etc/rc.d/rc.local(常用)
以下三种里面配置都可以实现开机自启动,其实差不多,只是服务器启动的时候执行的顺序先后的问题。一般都是用rc.local。1、/etc/init.d (少用)
目录存放开机初始化启动脚本,将脚本放入如:网络,环境变量等
2、/etc/fstab(少用)
系统初始化后,程序启动前加载(如磁盘挂载,mount命令等)
3、/etc/rc.d/rc.local (常用)
系统完成之后,执行。(如:应用服务启动,nginx启动等) (常用)
nfs放stab里面会在程序启动前加载上NFS文件系统,放到rc.local里如有程序依赖会造成程序启动加载时找不到路径。
PS:我使用修改/etc/rc.d/rc.local文件的方式,其他方式暂时还没用过
#在Centos7下,rc.local文件,是个软链接实际文件不具备执行权限,设置开机启动,需要给文件授权chmod +x /etc/rc.d/rc.local#修改文件vim /etc/rc.d/rc.local#在文件最后添加你的脚本全路径/xx/auto_start.sh#重启服务器测试reboot
完成!!!