systemd

发布时间:2026/6/3 19:23:38

systemd systemd的配置核心就是.service文件。通常位置/etc/systemd/system/例如/etc/systemd/system/harbor.service一、systemd 配置结构最重要一个 service 文件通常分 3 部分[Unit] [Service] [Install]二、[Unit] 部分服务关系控制启动顺序依赖关系描述信息例如[Unit] DescriptionHarbor Requiresdocker.service Afterdocker.service含义配置作用Description服务描述Requires强依赖 dockerAfterdocker 启动后再启动三、[Service] 部分核心真正定义怎么启动怎么停止用谁运行自动重启策略例如[Service] Typeoneshot WorkingDirectory/root/harbor ExecStart/usr/bin/docker compose up -d ExecStop/usr/bin/docker compose down RemainAfterExityes TimeoutStartSec0四、最常用配置项生产环境必须会1. ExecStart启动命令ExecStart/usr/bin/java -jar app.jarsystemd 官方说明ExecStart用来定义服务启动命令。2. ExecStop停止命令ExecStop/bin/kill -15 $MAINPID3. WorkingDirectory工作目录WorkingDirectory/root/harborsystemd 要求这里必须是绝对路径。4. Restart自动重启Restartalways常见值值含义no不重启always总是重启on-failure异常才重启5. User指定运行用户Userharbor默认 root。6. Environment环境变量EnvironmentJAVA_HOME/usr/local/java7. TimeoutStartSec启动超时时间TimeoutStartSec00 表示不限制。8. RemainAfterExitoneshot 服务常用RemainAfterExityes否则 systemd 会认为服务已经退出。Reddit 上很多人因为没加这个导致循环启动。五、[Install] 部分开机启动[Install] WantedBymulti-user.target意思开机进入多用户模式时自动启动六、你现在 Harbor 的标准配置推荐[Unit] DescriptionHarbor Requiresdocker.service Afterdocker.service [Service] Typeoneshot RemainAfterExityes WorkingDirectory/root/harbor ExecStart/usr/bin/docker compose up -d ExecStop/usr/bin/docker compose down TimeoutStartSec0 [Install] WantedBymulti-user.target七、配置修改后必须执行1. 重新加载配置systemctl daemon-reload2. 设置开机启动systemctl enable harbor3. 启动服务systemctl start harbor八、systemd 常用管理命令命令作用systemctl start harbor启动systemctl stop harbor停止systemctl restart harbor重启systemctl status harbor查看状态systemctl enable harbor开机自启systemctl disable harbor取消自启九、日志查看非常重要journalctl -u harbor -f实时查看 Harbor 日志。teleport配置/etc/systemd/system/teleport.service[Unit] DescriptionTeleport Service Afternetwork.target [Service] Typesimple ExecStart/usr/local/bin/teleport start --config/etc/teleport.yaml --pid-file/run/teleport.pid ExecReload/bin/sh -c exec pkill -HUP -L -F /run/teleport.pid PIDFile/run/teleport.pid Restartalways RestartSec5 LimitNOFILE524288 Userroot [Install] WantedBymulti-user.target

相关新闻