把opencode做成后台服务

场景

opencode支持web方式运行,方便全览控制各个工作区对话。
opencode在wsl运行时总是因wsl资源耗尽而掉线,希望有个守护进程将其自动拉起
要将openCode配置为守护进程,最标准的方法是使用 systemd

步骤 1:创建 systemd 服务文件

在 /etc/systemd/system/ 目录下创建一个名为 opencode.service 的文件(需要 root 权限):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Unit]
Description=OpenCode AI Server Daemon
After=network.target

[Service]
# 建议指定具体用户,不要以 root 运行
User=root
Group=root
# 指定运行目录
WorkingDirectory=/home/workspace
# 使用 serve 命令启动无头服务器模式
ExecStart=/usr/bin/opencode web --port 4096 --hostname 0.0.0.0
# 失败后自动重启
Restart=always
# 环境变量配置(如 API 密钥,也可以在 opencode.json 中配置)
Environment="HTTP_PROXY=http://your-proxy:your-port"
Environment="HTTPS_PROXY=http://your-proxy:your-port"
Environment="NO_PROXY=localhost,127.0.0.1" # 一定要配置,避免你的服务走代理了
[Install]
WantedBy=multi-user.target

[注:请根据实际安装路径修改 ExecStart 中的 opencode 路径,通常可用 which opencode 查询]。 

步骤 2:启用并启动服务

执行以下命令使配置生效:
重新加载配置:
sudo systemctl daemon-reload
启动并设置开机自启:
sudo systemctl enable –now opencode.service
检查运行状态:
sudo systemctl status opencode.service 

步骤 3:如何与之交互

web模式

直接打开 http://127.0.0.1:4096/

无头模式

你可以从其他终端远程连接到它(注意需要暴露端口)
使用 opencode attach http://host:4096 启动 TUI 界面。
非交互式运行命令:
使用 opencode run –attach http://host:4096 “你的指令” 快速获取结果。 

进阶提示

配置文件:你可以修改 ~/.config/opencode/opencode.json 来持久化端口、主机名和跨域(CORS)设置。
日志查看:若服务运行异常,使用 journalctl -u opencode.service -f 查看实时日志。