文章目录
- 背景
- Linux服务配置步骤并设置开机自启动
- 附-Linux服务常用指令
🙊 前言:由于博主在工作时,需要将服务部署到 Linux 服务器上运行,每次通过指令启动服务非常麻烦,所以将 jar 包部署的服务设置开机自启动,特此记录
背景
由于是记录在 Linux 环境下配置 jar 包程序并将其配置为 Linux 服务并设置开机自自动,所以需要 Linux 以及相关 Java 环境。博主使用的SSH客户端远程连接工具是 MobaXterm,有需要的小伙伴可以参考《瑞_Java所有相关环境及软件的安装和卸载》
步骤中所需的路径参考如下 ⬇️
1️⃣ JDK 安装路径/usr/local/jdk1.8
,即 Java 程序执行路径/usr/local/jdk1.8/bin/java
2️⃣ 需要配置为服务的 jar 包工作路径/home/ray-project/ray-monitor
,以及 jar 包所在路径/home/ray-project/ray-monitor/ray-monitor.jar
Linux服务配置步骤并设置开机自启动
1️⃣ 进入 Linux 系统服务路径
cd /usr/lib/systemd/system/
2️⃣ 新建服务文件,如ray_monitor.service
vi ray_monitor.service
3️⃣ 服务文件内容参考如下⬇️
[Unit]
# 服务描述
Description=ray_monitor
# 指定该服务在哪个目标(target)之后启动。network.target表示网络服务已经启动并可用后,再启动这个服务
After=network.target[Service]
# 指定服务类型为简单类型(simple),这意味着服务将一直运行,直到被停止
Type=simple
# 指定服务的工作目录
WorkingDirectory=/home/ray-project/ray-monitor/
# 设置服务的重启策略,这里设置为always,表示只要服务进程终止,就会自动重启。且Restart 先执行ExecStop, 再执行ExecStart
Restart=always
# 定义启动该服务时执行的命令,并设置远程调试监听端口
ExecStart=/usr/local/jdk1.8/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=48644 -jar ./ray-monitor.jar
# 定义停止该服务时执行的命令。这里使用kill -15发送SIGTERM信号给主进程($MAINPID)
ExecStop=/usr/bin/kill -15 $MAINPID
# 指定成功退出的状态码。由于Java进程在收到SIGTERM信号后会返回143,所以这里设置为143。正常kill执行成功是返回0
SuccessExitStatus=143[Install]
# 指定该服务属于哪个目标(target)。multi-user.target是默认的多用户目标,意味着该服务将在多用户模式下启动
WantedBy=multi-user.target
vi 指令的使用 1️⃣ 保存并退出:在 vi 的命令模式下(按下 Esc 键确保处于命令模式),输入
:wq
并按 Enter 键。这个命令会将当前编辑的内容保存到文件中,然后退出 vi
2️⃣ 强制保存并退出:如果文件没有写入权限,但你想强制保存并退出,可以使用:wq!
命令
3️⃣ 仅保存不退出:如果你只想保存当前编辑的内容而不退出 vi,可以输入:w
并按 Enter 键
4️⃣ 仅退出不保存:如果你想放弃所有未保存的更改并退出 vi,可以输入:q!
并按 Enter 键
命令模式与其他模式的关系 与输入模式的关系:在命令模式下,按下
i
键可以切换到输入模式,此时用户可以开始输入文本。完成输入后,按下 Esc 键可以返回到命令模式
与末行模式的关系:在命令模式下,按下冒号:
可以切换到底行模式,以执行文件管理操作,如保存文件和退出 vi。完成操作后,按下 Esc 键可以返回到命令模式
4️⃣ 重新加载 systemd 守护进程的配置文件,使配置文件生效
sudo systemctl daemon-reload
5️⃣ 设置服务开机自启动
sudo systemctl enable ray_monitor.service
6️⃣ 启动服务
sudo systemctl start ray_monitor.service
7️⃣ 检查服务状态
sudo systemctl status ray_monitor.service
瑞:如果服务启动异常,可以通过
journalctl -xe
或sudo systemctl status xxx.service -l
进行错误排查
# 查看启动日志错误详情
journalctl -xe
附-Linux服务常用指令
瑞:以下命令中
XXX.service
可以改为XXX
,即不需要.service
也能执行
# 设置XXX服务开机自启动
sudo systemctl enable xxx.service
# 移除XXX服务开机自启动的设置
sudo systemctl disable xxx.service
# 重新加载 systemd 守护进程的配置文件,使配置文件生效
sudo systemctl daemon-reload# 查看XXX服务状态
sudo systemctl status xxx.service
# 重新加载指定服务的配置文件,而不需要中断服务
sudo systemctl reload xxx.service
# 停止XXX服务,如果设置了服务开机自启动,则服务器重启后仍然会自启动
sudo systemctl stop xxx.service
# 开启XXX服务,如果没有设置服务开机自启动,则服务器重启后仍然不会自启动
sudo systemctl start xxx.service
如果觉得这篇文章对您有所帮助的话,请动动小手点波关注💗,你的点赞👍收藏⭐️转发🔗评论📝都是对博主最好的支持~