systemd

1. .service 文件

主要分为三个部分

  • [Unit] 服务的元信息(描述、依赖关系等)。
  • [Service] 服务的运行参数与生命周期
  • [Install] 服务的安装目标(说人话:在什么情况下启动,命令行 or GUI)

1.1. 案例

[Unit]
Description=frp auto start
After=network.target

[Service]
Type=simple
#User=cococat # 对于系统级服务,谨慎指定 User !
WorkingDirectory=/home/cococat/Software/frp_0.51.2_linux_amd64
ExecStart=/home/cococat/Software/frp_0.51.2_linux_amd64/frpc -c ./frpc.ini
Restart=always
RestartSec=5
# StandardOutput=append:/home/cococat/Software/frp_1.51.2_linux_amd64/nohup.out
# StandardError=append:/home/cococat/Software/frp_1.51.2_linux_amd64/nohup.out

[Install]
WantedBy=multi-user.target

1.1.1. Unit 常用配置项

  • Description:略
  • After: 编排服务的启动顺序。例如:
    • network.target : 系统网络服务启动完成后,再启动本服务
    • postgresql.service:pg 服务启动完成

1.1.2. Service 常用配置项

  • Type: 服务类型,例如:
    • simple: 适用于保持前台运行的进程,最常用
    • one-shot: 适用于执行一次后退出,例如脚本
  • User: 指定运行服务的用户
  • WorkingDirectory: 进程的运行目录
  • EnvironmentFile: 加载外部环境变量
  • ExecStart: 服务进程的绝对路径 和运行参数
  • Restart: 服务的重启策略,例如:
    • no: 不重启
    • always: 任何情况下退出都重启
    • on-failure: 仅在非正常退出(如错误码、信号终止)时重启
  • RestartSec: 重启前等待时间,避免频繁重启

1.1.3. Install 常用配置项

  • WantedBy: 服务在什么情况下启动,例如:
    • multi-user.target: 多用户命令行模式(无 GUI)
    • graphical.target:GUI 模式

1.2. 坑

  • ExecStart 中的可执行文件必须是绝对路径。即使通过 WorkingDirectory 指定了运行目录,也不可以是 ./xxxx 等。而其他运行的参数是可以的用 ./ 的。
  • 如果是一个系统级的 service,即放在 /etc/systemd/system 下的服务,请谨慎指定 User ,如果不是必须要以用户运行的进程,最好都别制定。如果你发现你的服务无任何输出的闪退,把 User 去掉,可能就好了
  • 不可以在 ExecStart 中使用 > 将 stdout 输出重定向到文件中。如果要这么做,请使用 StandardOutput 或者 StandardError。 > ExecStart 的参数会被直接解析为命令和参数,不会经过 Shell 解释。重定向符号(如 >>>|)会被视为普通字符,导致命令执行失败。

2. 位置

目录 作用域 权限 适用场景 管理命令
/etc/systemd/system 系统级(全局) 通常以 root 运行 系统关键服务(如 Web 服务器、数据库) sudo systemctl ...
/etc/systemd/user 用户级(会话) 以当前用户权限运行 用户专属服务(如开发工具、个人脚本) systemctl --user ...

一般来说,开机自启的命令都放在 /etc/systemd/system

3. 命令

# 验证 service 语法
sudo systemd-analyze verify /etc/systemd/system/my_service.service

sudo systemctl daemon-reload
sudo systemctl enable my_service
sudo systemctl start my_service
知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇