写在前面
本节介绍了设置CentOS启动的三种方法。 分别如下。
1 )通过systemctl服务启动
2 )用服务启动
3 )配置rc.local文件
1 .通过systemctl服务启动
此方法在systemctl服务中托管Java APP应用程序的启动脚本,并通过systemctl的一系列命令设置APP应用程序的启动和启动。
1 )导航到系统的/usr/lib/systemd/system目录
CD/usr/lib /系统/系统
2 )添加服务文件
vim test.service
[单元]
#服务说明
描述=test
#当前服务将在服务启动后启动
after=syslog.target network.target
服务
#systemctl进程执行的类型有多种。 缺省情况下,simple从主进程启动,forking后台启动或systemctl主进程启动时,将生成运行当前服务的子进程
类型=forking
#存储应用进程号的文件路径是绝对路径
PIDFile=/home/service/pid
#设定APP应用程序启动命令。 要应用的启动脚本的路径必须是绝对路径
execstart=/home/service/startup.sh start
#设置APP应用程序的重新启动命令
exec reload=/home/service/startup.sh restart
#设定APP应用的停止命令
exec stop=/home/digital/service/startup.sh stop
#表示为APP应用程序分配独立的临时空间
私密tmp=true
#指定启动APP应用程序的用户
User=test
#指定用户的用户组
Group=test
#等待APP应用程序启动的时间。 秒,0表示无效,如果在设定的时间内收到启动完成的信号,服务将视为执行失败,并自动退出
TimeoutStartSec=0
#杀死指定进程。 none表示没有进程就会被杀死,只执行stop操作
KillMode=none
[Install]
WantedBy=multi-user.target
在配置文件中添加名为TimeoutStartSec和KillMode的参数,主要是为了防止Java APP应用程序在systemctl中成功启动后自动杀死进程的问题。 设置过程中出现的问题是,在Java APP应用程序成功启动后,该进程会不可思议地被杀死。 尝试了几种方法,例如向配置文件中添加restart=
在TimeoutStartSec=0和KillMode=none之后解决了问题。
3 )运行reload命令启用配置
超系统后台加载
4 )将执行APP应用程序的命令设置为开机自动启动
#电源接通启动的设定
sudosystemctlenabledtest.service
#设定为不接通电源
sudosystemctldisabledtest.service
5 )手动启动APP应用
sudo systemctl start test.service
如果启动异常,可以在systemctl status中检查APP应用程序启动的状态
sudosystemctlstatustest.service
2、通过服务启动
1 )在/etc/inint.d目录中创建服务软连接
#这里,jar包的路径是绝对路径
ln-s/home/service/test.jar/etc/inint.d/test
2 )手动启动APP应用程序测试添加是否成功
服务测试开始
3 )添加服务开机启动
chkconfig--添加测试
4 )确认配置成功
#确认服务是否已添加到列表中
chkconfig --list
#重新启动服务
重新引导
注:可以直接使用jar包名称执行上述配置,例如,在spring-boot中生成项目并将其转换为jar包,然后直接在./test.jar中启动项目。 配置将以下配置添加到pom文件中
org.springframework.boot
spring-boot-maven-plugin
真的
3、配置rc.local文件
更改方式设置自动启动是最简单的,只需修改rc.local文件
1 )转到/etc/rc.d目录
cd /etc/rc.d
2 )变更文件执行权限。 默认情况下没有此权限
chmod x rc.local
3 )编辑rc.local文件,添加要执行的命令
4 )重新启动服务器进行测试