Linux配置springboot开机自启 | 张扎瓦的博客

Linux配置springboot开机自启

本文介绍了Linux环境下,自定义服务的开机自启


背景

  对于不使用云服务器的公司而言,服务器断电是一件很头痛的事。最近公司的一个外包项目上线了,但甲方三天两头打电话,说服务没办法访问。最后才找出原因,他们的服务器断过电。一开始,我以为是偶发事件,结果是他们的服务器经常性的断电。每次断电重启后,都要打电话给我,重新启动项目,非常麻烦。能不能配置一下服务器,在开机的时候就启动指定的服务呢?

配置

Linux服务开机自启,有三种方式。

编辑/etc/rc.local

使用vi编辑此文件,直接添加要执行的命令就行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

# 这里是自定义的执行命令
nohup /usr/java/jdk1.8.0_162/bin/java -jar /data/wwwroot/api/speed-api-0.0.1-SNAPSHOT.jar &>/dev/null

这里有一点需要注意,即使配置过环境变量,在这里也要指定java命令的路径,否则会有如下错误。

1
2
nohup: ignoring input
nohup: failed to run command `java': No such file or directory

因为在加载执行此文件的时候,环境变量还未生效。

写脚本,放入/etc/profile.d

自己写一个shell脚本,放在此路径下,系统启动时会自动执行。

1
2
3
4
5
6
[root@localhost ~]# cd /etc/profile.d/
[root@localhost profile.d]# vi mystart.sh

#!/bin/bash

nohup /usr/local/java/jdk1.8.0_162/bin/java -jar /data/wwwroot/api/speed-api-0.0.1-SNAPSHOT.jar &>/dev/null

此处同上,依然使用完全限定的java命令来执行。编写完脚本后,要为脚本分配可执行权限。

1
[root@localhost profile.d]# chmod a+x mystart.sh

使用chkconfig命令执行

自己写脚本,放入/etc/init.d

1
2
3
4
5
6
7
8
[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# vi speed-start

#!/bin/bash
# chkconfig: - 95 15
# description: speed-api start script

nohup /usr/local/java/jdk1.8.0_162/bin/java -jar /data/wwwroot/api/speed-api-0.0.1-SNAPSHOT.jar &>/data/wwwroot/api/mylog.log

保存脚本,并赋予执行权限

1
[root@localhost init.d]# chmod a+x speed-start

添加到chkconfig中,并设置开机启动

1
2
[root@localhost init.d]# chkconfig --add speed-start
[root@localhost init.d]# chkconfig speed-start on

这样,当下次服务器重启时,项目就可以自己启动了。

如果我的文章对您有所帮助,不妨打赏一杯豆浆以资鼓励(○` 3′○)