惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
WordPress大学
WordPress大学
博客园_首页
罗磊的独立博客
D
Docker
N
Netflix TechBlog - Medium
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
I
InfoQ
L
LangChain Blog
GbyAI
GbyAI
V
V2EX
博客园 - 聂微东
P
Proofpoint News Feed
博客园 - 【当耐特】
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
U
Unit 42
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏

博客园 - 海乐学习

VS2026创建.net8的控制台程序并能在银河麒麟V10的Liunx上运行 在麒麟系统中卸载RabbitMQ Java Maven 开发的常用命令 C语言开发的常用命令 三汇Linux配置Config说明 Java实现优雅的关闭程序并执行清理流程的写法 C语言开发中优雅的关闭程序并执行清理流程的写法 将C语言开发的程序做成 麒麟系统的服务(Systemd 标准服务,Linux 通用) 实现开机自启动 ZeroMQ的DEALER双帧结构(路由空帧 + 业务帧)(支持异步收发、主动推送事件)C写服务端 java写客户端 ZeroMQ中ZMQ_DEALER单帧数据(支持异步收发、主动推送事件)C写服务端 java写客户端 win10系统中 关闭专注助手 执行 xx.sh 脚本文件时出现: /bin/bash^M:解释器错误: 没有那个文件或目录 运行编译打包好的 xxx.jar 中没有主清单属性 出现这个错误 将Java编译的 .jar文件做成windows服务 实现开机自启动 方法二 RabbitMQ在麒麟系统中离线安装说明 VMware启动虚似机后出现 无法获取快照信息: 锁定文件失败 模块“Snapshot”启动失败。未能启动虚拟机。 C语言在Linux中开发完整Demo包含读配置文件写日志和定时器Timer C语言在Linux中开发读取配置文件app.conf 麒麟V10 Server系统中搭建C语言开发环境 麒麟ServerV10 修改IP4地址 麒麟ServerV10 配置IP4 当系统中有两个版本的Maven时,用IDEA创建Maven有时会出错 麒麟ServerV10安装 espeak-ng 和 ffmpeg 方法 C语言在Linux中开发没有界面纯后台运行的Demo程序(含日志和Timer) C语言在Linux中开发使用定时器Timer在界面上显示时间 C语言在Linux中开发带界面的程序(含每小时日志) C语言在Linux中开发第一个项目Hello Word 在apache-maven项目中使用log4写日志 在apache-maven项目中解决中文乱码问题 在apache-maven项目中读取配置文件
将Java编译的 .jar文件做成 麒麟系统的服务(Systemd 标准服...
海乐学习 · 2026-06-04 · via 博客园 - 海乐学习

银河麒麟系统(Systemd 标准服务,Linux 通用)

1、路径约定

  • jar 路径:/opt/ShPbxClientJava/ShPbxClient.jar
  • java 路径:/usr/bin/java(执行which java查真实路径)

image

2、新建服务配置文件

vim /etc/systemd/system/shpbxclient.service

写入配置:

[Unit]
Description=ShPbxclient PBX通信服务
After=network.target  #网卡就绪后再启动

[Service]
User=root
WorkingDirectory=/opt/ShPbxClientJava
ExecStart=/usr/bin/java -jar ShPbxClient.jar
SuccessExitStatus=143
Restart=on-failure    #异常崩溃自动重启
RestartSec=5          #崩溃5秒后重试

[Install]
WantedBy=multi-user.target

3、生效 + 开机自启

#重载系统服务配置
systemctl daemon-reload
#设置开机自启
systemctl enable shpbxclient
#立即启动服务
systemctl start shpbxclient

4、日常运维命令

systemctl status shpbxclient    #查看运行状态
systemctl stop shpbxclient      #停止
systemctl restart shpbxclient   #重启
journalctl -u shpbxclient -f    #实时查看日志

image

image

5、更新 jar 包操作

麒麟系统执行

systemctl stop shpbxclient → 替换 jar  →   systemctl restart shpbxclient

麒麟日志:可在 ExecStart 尾部追加>server.log 2>&1落地日志文件

ExecStart=/usr/bin/java -jar ShPbxClient.jar > server.log 2>&1

 制做 银河麒麟 / Linux 服务的一键脚本

1. 一键安装并开机自启:install-service.sh

#!/bin/bash

JAR_PATH="/opt/ShPbxClientJava/ShPbxClient.jar"
SERVICE_FILE="/etc/systemd/system/shpbxclient.service"

cat > $SERVICE_FILE << EOF
[Unit]
Description=ShPbxClient
After=network.target

[Service]
User=root
WorkingDirectory=/opt/ShPbxClientJava
ExecStart=/usr/bin/java -jar $JAR_PATH
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable shpbxclient
systemctl start shpbxclient

echo "安装完成!服务已开机自启"
systemctl status shpbxclient

2. 一键卸载服务:uninstall-service.sh

#!/bin/bash

systemctl stop shpbxclient
systemctl disable shpbxclient
rm -f /etc/systemd/system/shpbxclient.service
systemctl daemon-reload

echo "ShPbxClient 服务已卸载完成!"

使用方法

安装服务

chmod +x install-service.sh
./install-service.sh

卸载服务 

chmod +x uninstall-service.sh
./uninstall-service.sh

麒麟系统中用这两个 sh 脚本 实现一键安装 → 自动注册服务

若出现这个问题:

[root@localhost ShPbxClientJava]# ./install-service.sh

-bash: ./install-service.sh:/bin/bash^M:解释器错误: 没有那个文件或目录

错误原因:

在 Windows 里编辑过这个 .sh 脚本,导致换行符变成了 Windows 格式, Linux 不认识,所以报错 

^M 就是 Windows 换行符,Linux 识别不了。

解决方法:

在麒麟系统里,进入 .sh 脚本目录,执行:

1、去掉换行符

sed -i 's/\r$//' install-service.sh

2、赋予权限 

chmod +x install-service.sh

3、安装

image

image