453 字
2 分钟
linux systemd 服务管理器的使用

参考了以下文章, 写得超好!

简要命令#

重载 systemd 配置#

重载所有 unit 文件(常用)

Terminal window
sudo systemctl daemon-reload

启动服务并设置开机启动#

Terminal window
sudo systemctl start myapp.service
sudo systemctl enable myapp.service

查看服务状态与日志#

Terminal window
sudo systemctl status myapp
sudo journalctl -fu myapp

列出所有服务#

Terminal window
systemctl list-units --type=service

systemd 用户模式 (好用!)#

简单说,systemd 不只是给 root 用的。每个登录用户都可以跑自己的 systemd —user 实例,用来管理用户级别的后台服务和定时任务——不需要 sudo。

用户单元文件放在以下目录:

目录用途
~/.config/systemd/user/用户自定义的服务(推荐!)
~/.local/share/systemd/user/用户安装的服务
/usr/lib/systemd/user/系统提供的用户服务模板

所有操作都带 —user 参数,和系统级的 systemctl 用法几乎一样:

Terminal window
systemctl --user start my-app # 启动
systemctl --user stop my-app # 停止
systemctl --user restart my-app # 重启
systemctl --user status my-app # 查看状态
systemctl --user enable my-app # 开机自启
systemctl --user daemon-reload # 重新加载配置

有一个前提:必须启用 linger,否则用户注销后所有用户服务都会被杀掉:

Terminal window
sudo loginctl enable-linger $USER
loginctl show-user $USER | grep Linger # 确认输出 Linger=yes

systemd文件配置示例#

以这个博客的fastapi服务文件为例

/home/mint/.config/systemd/user/blog_backend.service
[Unit]
Description=Blog Fastapi Service
After=network.target
[Service]
WorkingDirectory=/home/mint/web/blog_backend/app
Environment="PATH=/home/mint/web/blog_backend/.venv/bin:/usr/local/bin:/usr/bin"
Environment="FASTAPI_DEPLOY=DEPLOY" # 用于区分测试和部署环境
Environment="SMTP_USER=******" # 以下均是通过环境变量引入敏感数据
Environment="SMTP_PASSWORD=******"
Environment="SECRET_KEY=******"
Environment="DB_USER=******"
Environment="DB_PASSWORD=******"
Environment="DB_NAME=******"
Environment="DB_HOST=******"
Environment="DB_SCHEMA=******"
ExecStart=/home/mint/web/blog_backend/.venv/bin/gunicorn \
-w 4 \
-k uvicorn.workers.UvicornWorker \
--bind localhost:8051 \
--log-file=- \
main:app
StandardOutput=journal # 将控制台输出重定向到journal
Restart=always # 自动重启
RestartSec=10
LimitNOFILE=4096
[Install]
WantedBy=default.target

后记#

还有定时器功能等等, 还没用上, 可先参考上方列出来的文章

linux systemd 服务管理器的使用
https://www.mintlab.top/posts/linux_systemd管理器/
作者
Mint
发布于
2026-03-17
许可协议
CC BY-NC-SA 4.0
发表评论

输入用户名和邮箱后自动检查登录状态。登录后用户名和邮箱将被绑定, 只可以修改头像和主页链接。

未登录
昵称
邮箱
填写头像链接与主页链接

头像链接为空默认使用gravatar头像

头像
主页
评论列表

以下是可爱的评论们:

暂无评论, 呜呜, 快来评论喵!