资讯详情

资讯详情

如何在 Linux 上将 One API 可执行文件注册为 systemd 后台服务并自动重启

如何在 Linux 上将 One API 可执行文件注册为 systemd 后台服务并自动重启【免费下载链接】one-apiLLM API 管理 分发系统支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型统一 API 适配可用于 key 管理与二次分发。单可执行文件提供 Docker 镜像一键部署开箱即用。LLM API management key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-apiOne API 是一个 LLM API 管理与分发系统把 OpenAI、Anthropic Claude、Google Gemini、DeepSeek 等各家模型统一成标准 OpenAI API 格式单文件即可运行。手动部署时它只能靠一条前台命令./one-api跑起来终端一断服务就没了。仓库提供了现成的 systemd 单元文件 one-api.service把可执行文件注册成系统服务后One API 可以随开机自启进程异常退出时由 systemd 自动拉起。本文基于 README.md 的“手动部署”一節与仓库内的one-api.service文件给出从拿到可执行文件到验证服务运行的完整路径。准备条件获取 one-api 可执行文件注册服务之前服务器上必须先有一个可运行的one-api可执行文件。README 的手动部署章节给出两种来源从 GitHub Releases 下载编译好的可执行文件或者从源码编译git clone https://github.com/songquanpeng/one-api.git # 构建前端 cd one-api/web/default npm install npm run build # 构建后端 cd ../.. go mod download go build -ldflags -s -w -o one-apiREADME 给出的手动运行方式是chmod ux one-api ./one-api --port 3000 --log-dir ./logs如果这条前台命令能正常跑起来、浏览器访问http://localhost:3000/能看到页面就可以把它注册为服务了。--port指定监听端口默认3000--log-dir指定日志文件夹不设置时默认保存在工作目录的logs文件夹下这两个参数在稍后的服务文件里还会用到。编写 systemd 服务文件仓库根目录的 one-api.service 就是可直接使用的单元文件文件开头的注释明确了存放路径和后续操作命令。将其内容放到目标服务器的/etc/systemd/system/one-api.service# File path: /etc/systemd/system/one-api.service # sudo systemctl daemon-reload # sudo systemctl start one-api # sudo systemctl enable one-api # sudo systemctl status one-api [Unit] DescriptionOne API Service Afternetwork.target [Service] Userubuntu # 注意修改用户名 WorkingDirectory/path/to/one-api # 注意修改路径 ExecStart/path/to/one-api/one-api --port 3000 --log-dir /path/to/one-api/logs # 注意修改路径和端口号 Restartalways RestartSec5 [Install] WantedBymulti-user.target文件里的三处占位符必须改成你的实际环境这也是源文件注释“注意修改用户名 / 注意修改路径”所提示的位置源文件原值替换为Userubuntu运行服务的系统用户名WorkingDirectory/path/to/one-apione-api 可执行文件所在目录的绝对路径ExecStart中的可执行文件与日志路径/path/to/one-api/one-api、--log-dir /path/to/one-api/logs可执行文件完整路径以及日志目录的绝对路径--port 3000同样按注释要求修改成实际监听端口。两处/path/to/one-api应指向同一个目录WorkingDirectory决定程序的工作目录未设置--log-dir时日志也默认落在这里的logs子目录显式传--log-dir后日志则写到指定目录。自动重启由[Service]段的两行实现Restartalways让 systemd 在进程退出后重新拉起RestartSec5表示重启前等待 5 秒。[Install]段的WantedBymulti-user.target则是开机自启的依据缺了它systemctl enable不会生效。加载并启动服务修改完成后的四条命令就是one-api.service文件开头注释里给出的操作顺序sudo systemctl daemon-reload sudo systemctl start one-api sudo systemctl enable one-api sudo systemctl status one-apidaemon-reload让 systemd 重新读取单元文件首次安装和之后每次改动one-api.service都要执行start立即启动服务enable建立开机自启之后重启服务器时服务会自动拉起status查看当前运行状态判断前几步是否成功。如果start之后status显示进程不在运行优先核对单元文件里三个已修改的项是否与实际环境一致用户名是否存在、可执行文件路径是否正确、--port端口是否被占用这是单元文件中直接影响启动成功的字段。验证服务与登录系统服务状态正常后按 README 的手动部署步骤 3 做功能验证访问 http://localhost:3000/ 并登录初始账号用户名为root密码为123456。页面能打开、能登录即说明服务以 systemd 方式跑通。README 特别提醒使用 root 用户初次登录系统后务必修改默认密码123456。自动重启行为不需要专门配置其他项——单元文件里的Restartalways与RestartSec5已覆盖“进程退出后自动拉起”这一需求进程被 systemd 正常stop后不会重启这属于Restartalways之外的 systemd 语义文档未展开说明。后续维护与限制更新可执行文件把新版one-api文件覆盖到原路径后需要让 systemd 重新加载单元并重启服务命令即单元文件注释中的sudo systemctl daemon-reload加一次 stop/start数据保存在工作目录WorkingDirectory下更新前确认新文件放在同一目录避免路径变化导致数据“丢失”。数据库服务方式本身不改变存储行为。README 在环境变量一节要求并发量较大时务必设置SQL_DSN使用 MySQL 而非 SQLiteSQLite 方案下要确保工作目录可持久化。通过 systemd 部署时没有docker run -e可用相应环境变量需写在[Service]段内如SQL_DSNroot:123456tcp(localhost:3306)/oneapi修改后同样执行daemon-reload再重启。多机部署如果这台机器是从服务器还需按 README“多机部署”一节设置SESSION_SECRET、SQL_DSN、NODE_TYPEslave等同样落在单元文件的[Service]段。完成以上步骤后systemctl status one-api显示服务在运行、http://localhost:3000/可登录即完成了可执行文件的 systemd 注册此后服务器重启和进程意外退出都由 systemd 接管。【免费下载链接】one-apiLLM API 管理 分发系统支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型统一 API 适配可用于 key 管理与二次分发。单可执行文件提供 Docker 镜像一键部署开箱即用。LLM API management key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →