Linux systemd 服务管理实战:Unit 文件、开机自启
现代 Linux 都用 systemd 管理服务替代了老的 SysVinit。部署 Java/Python 项目、写开机自启、看服务日志全都要用 systemd。这篇从 Unit 文件写到实战部署。一、什么是 systemdsystemd 系统和服务管理器 老方式 serviceSysVinit 开机顺序执行脚本无依赖关系启动慢 /etc/init.d/xxx 脚本启动 新方式 systemd 并行启动、按依赖排序、统一管理 /usr/lib/systemd/system/ 存 Unit 文件 用 systemctl 命令操作# systemctl 常用命令systemctl start nginx# 启动systemctl stop nginx# 停止systemctl restart nginx# 重启systemctl status nginx# 查看状态systemctlenablenginx# 开机自启systemctl disable nginx# 取消自启systemctl is-active nginx# 是否运行中二、编写 Unit 文件以部署一个 Java 项目为例创建/etc/systemd/system/myapp.service[Unit] DescriptionMy Java Application # 描述 Afternetwork.target mysql.service # 依赖这些服务先启动 Wantsmysql.service # 软依赖失败不阻塞 [Service] Typesimple # 简单类型主进程前台运行 Userappuser # 以哪个用户运行安全 WorkingDirectory/opt/myapp # 工作目录 ExecStart/usr/bin/java -Xms256m -Xmx512m -jar myapp.jar # 启动命令 ExecStop/bin/kill -s TERM $MAINPID # 停止命令 Restarton-failure # 失败自动重启 RestartSec5 # 重启等待5秒 EnvironmentJAVA_HOME/usr/local/jdk # 环境变量 StandardOutputappend:/var/log/myapp.log # 日志输出 StandardErrorappend:/var/log/myapp-error.log [Install] WantedBymulti-user.target # 开机自启挂载点Restart 策略对比策略行为no不自动重启默认on-failure非正常退出才重启推荐生产always任何退出都重启on-abnormal信号/超时/看门狗等异常才重启三、生效与开机自启# 写完后必须重载配置systemctl daemon-reload# 启动并设置开机自启systemctl start myapp systemctlenablemyapp# 查看状态会显示是否开机自启 enabledsystemctl status myapp部署 Java 项目的完整流程# 1. 创建应用目录并上传 jarmkdir-p/opt/myappscpmyapp.jar root服务器:/opt/myapp/# 2. 创建非root运行用户安全useradd-rappuser# 3. 写 Unit 文件内容见上vi/etc/systemd/system/myapp.service# 4. 重载并启动systemctl daemon-reload systemctlenable--nowmyapp# 5. 验证systemctl status myapptail-f/var/log/myapp.log四、日志查看 journalctljournalctl-umyapp# 查看服务全部日志journalctl-umyapp-f# 实时跟踪journalctl-umyapp--since1 hour ago# 最近1小时journalctl-umyapp-n100# 最近100行journalctl-umyapp-perr# 只看错误级别常见报错排查启动失败三步排查 1. systemctl status myapp → 看错误提示 2. journalctl -u myapp -p err → 看详细错误日志 3. 检查文件权限 / 端口占用 / 环境变量 端口被占用 ss -tlnp | grep 8080 kill -9 pid # 或改配置文件端口五、定时任务 systemd timersystemd 也能做定时任务替代 crontab# /etc/systemd/system/backup.service [Service] ExecStart/opt/scripts/backup.sh # /etc/systemd/system/backup.timer [Timer] OnCalendar*-*-* 02:30:00 # 每天凌晨2点半 Persistenttrue # 错过时间下次开机补执行 [Install] WantedBytimers.targetsystemctlenable--nowbackup.timer systemctl list-timers# 查看所有定时任务总结systemd 三个要点1. Unit 文件三部分 [Unit] 描述依赖 / [Service] 启动参数 / [Install] 自启挂载 2. 每次改 Unit 文件都要 systemctl daemon-reload 3. 日志排查用 journalctl -u 服务名 生产部署推荐配置 Typesimple Restarton-failure RestartSec5 非root用户 日志落盘到文件配合systemctl statusjournalctl再也不用担心服务挂了不知道。 觉得有用的话点赞 关注【张老师技术栈】吧

相关新闻

Markdown本地图片预览全攻略:原理、方案与最佳实践

Markdown本地图片预览全攻略:原理、方案与最佳实践

1. 项目概述:为什么我们需要在.md文件中优雅地插入本地图片?如果你经常用Markdown写文档、记笔记,或者维护项目README,肯定遇到过这个烦心事:辛辛苦苦在.md文件里插入了本地图片的路径,结果在编辑器里只看到…

2026/11/13 14:14:45 阅读更多 →
ShaderGraph幂运算节点深度解析:从数学原理到实战应用

ShaderGraph幂运算节点深度解析:从数学原理到实战应用

1. 项目概述今天我们来深入聊聊ShaderGraph里一个看似简单,实则“威力”巨大的节点——幂运算节点,也就是Power Node。如果你在Unity里鼓捣过材质特效,或者想实现一些非线性的颜色、亮度变化,那这个节点绝对是你工具箱里的“隐藏高…

2026/11/10 9:41:02 阅读更多 →
Windows智能题库生成器!

Windows智能题库生成器!

链接: https://pan.baidu.com/s/1kv7H2ZMsbJpjoRZQQ2W0hg 提取码: edy8我自己因为记忆力比较差,但是工作上有阅读文献和指南的需求,网上没找到类似的软件,所以写了这款,软件支持导入pdf及word和markdown生成题目,支持自…

2026/11/13 6:02:53 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻