操作服务的命令
在Linux中管理服务,需要使用systemctl
命令,例如常用的打开/关闭防火墙
$ systemctl start firewalld
$ systemctl stop firewalld
在这里列举一下systemctl
命令常用的操作
# 启动服务
$ systemctl start xxx
# 停止服务
$ systemctl stop xxx
# 重启服务
$ systemctl reload xxx
# 启用服务开机自启
$ systemctl enable xxx
# 关闭服务开机自启
$ systemctl disable xxx
# 查看服务状态
$ systemctl status xxx
# 查看服务是否正在运行
$ systemctl is-active xxx
# 查看服务是否启动失败
$ systemctl is-failed xxx
# 查看服务是否开机自启
$ systemctl is-enabled xxx
# 查看服务列表
$ systemctl list-units xxx
# 刷新服务配置
$ systemctl daemon-reload
服务文件
我们操作的服务都是以文件的形式存储在系统中,服务文件的存储位置有两处,其中一个位于/etc/systemd/system
,systemctl会读取该目录下的服务文件并执行,同时该目录中有一些文件为符号连接,连接的地址为/usr/lib/systemd/system
,这个是真正存放服务的目录
标准的服务文件以.service结尾,文件内容包括Unit
,Service
,Install
三个区块,我在/opt/java
目录下上传了practice-web.jar的文件,接下来就为他编写服务文件
一般来说自建服务在/etc/systemd/system
目录下就可以了,在该目录下创建practice-web.service
文件,内容为:
[Unit]
# 服务描述
Description=practice-web.jar
[Service]
# 服务类型为简单服务
Type=simple
# 任何用户都可以使用
User=nobody
# 服务执行时启动的命令,注意这里必须使用绝对路径
ExecStart=/usr/local/jdk-17.0.1/bin/java -jar /opt/java/practice-web.jar
[Install]
# 自启模式配置
WantedBy=multi-user.target
文件编写完成后重新载入服务配置,然后就可以像启动防火墙一样启动jar包
# 刷新服务配置
$ systemctl daemon-reload
# 启动jar包服务
$ systemctl start practice-web.service
# 设置服务开机自启
$ systemctl enable practice-web.service
可以留意一下在/etc/systemd/system
目录下有个multi-user.target.wants
目录,而服务配置文件中有一段WantedBy=multi-user.target
,当启用服务开机自启后,该目录下就会生成符号连接,这就是WantedBy的作用
更多服务详细信息可以到阮一峰博客去看,写的非常详细
标签:web,practice,服务,JAR,xxx,jar,systemctl,Linux From: https://www.cnblogs.com/hanzhe/p/17055481.html