systemd 守护服务:不只是写一行 Restart=always
从 nohup 迁移到 systemd 后,我重新理解了 restart 策略、enable、启动限速、日志、健康检查和 sandbox;进程回来不等于服务已经恢复。

笔记、随笔和技术写作。
从 nohup 迁移到 systemd 后,我重新理解了 restart 策略、enable、启动限速、日志、健康检查和 sandbox;进程回来不等于服务已经恢复。

Linux 命令成千上万,日常管服务器真正高频的就那么几组。这篇不堆大全,只记我每天真的会敲的,以及为什么是这几组——对应「喘不喘、谁占了、日志说什么」三件事。

VPS 一接公网,几分钟内就有人来试密码。这篇不讲 SSH 大全,讲我为什么选 ed25519、为什么改端口值得,以及「改配置别关当前会话」的退路纪律。

代码写了几个月一直跑在本机。这篇不讲 VPS 怎么买,讲我作为练手机在挑什么、为什么不上高配,以及到手那三件事的顺序我为什么这么排。

真实项目很少只有一个容器。这篇不讲 Compose 语法大全,讲我用手敲 docker run 翻过什么车、为什么把整套服务写进一个 yml,以及那条差点把数据删没了的教训。

装服务装到后面,系统里 Python、Java 各种库混在一起,依赖打架。这篇不讲 Docker 命令大全,讲它到底在解决什么——以及为什么我说它是 venv 那条线的延续。

两次调试失误的底子是同一个偏差:跳过眼前最直接的线索,去查更“高级”的可能。这篇记录浪费掉的时间、真正有效的两分钟,以及后来固定下来的排查顺序。

接口能返回数据只是第一步。这篇做两件让接口专业起来的事:统一返回结构、集中处理异常。不讲模板,讲我为什么把它当成给前端的契约,以及「给用户看友好、给自己看堆栈」这条判断。

接口有了,让数据落库。这篇用 Spring Data JPA 接 MySQL。不讲怎么配,讲「继承个接口就白送 CRUD」的爽和险——爽在省事,险在我可能根本不懂它在生成什么 SQL。

一篇没有代码的年终复盘。回看这一年,我学东西像狗熊掰玉米——学一个丢一个。这篇记录我怎么意识到问题,以及开博两个月为什么能缓解它。

还记得 Python 那边的 FastAPI 接口吗?这篇写一个 Java 版对照。不讲注解清单,讲两种风格差在哪,以及学第二门后端框架最大的收获——开始看见框架之上不变的那些东西。

第一次打开 Spring Boot 项目,文件夹一堆不知道从哪看起。这篇不讲 Maven 大全,讲我怎么从被结构吓到,到抓住 pom.xml 和标准目录,以及「约定优于配置」到底在替我省什么。
