BitComet 命令行 — 启动参数、后台守护、与脚本集成
BitComet 命令行的两种模式
BitComet 有两个完全不同的命令行使用场景:
场景一:Linux 端的默认运行方式
Linux 版 BitComet 是一个纯命令行、后台守护进程(daemon)——它没有图形界面,所有操作通过 WebUI 或命令行参数完成。这是 Linux 端的默认和唯一工作模式。
场景二:Windows / macOS 端的后台启动与自动化
Windows 和 macOS 端默认带图形界面,但也可以通过命令行参数让 BitComet 在后台静默运行、或通过命令行添加任务。适合写自动化脚本、和下载管理系统集成。
Linux 端:守护进程管理
安装方式回顾
sudo dpkg -i bitcomet_2.22_amd64.deb # Debian/Ubuntu
sudo rpm -i bitcomet-2.22.x86_64.rpm # CentOS/RHEL
控制守护进程
安装完成后,BitComet 以 systemd 服务方式运行,常用命令:
bitcomet start # 启动守护进程
bitcomet stop # 停止守护进程
bitcomet restart # 重启
bitcomet status # 查看当前状态(是否运行、PID、WebUI 端口)
bitcomet log # 实时查看运行日志
或者用 systemd 直接控制:
sudo systemctl start bitcomet
sudo systemctl enable bitcomet # 开机自启
sudo systemctl status bitcomet
sudo journalctl -u bitcomet -f # 查看日志
WebUI 是主要操作界面
Linux 端没有 GUI,管理 BitComet 全靠 WebUI:
- BitComet 启动后 WebUI 默认监听
0.0.0.0:18080。 - 本机浏览器访问
http://localhost:18080进入 WebUI。 - 首次访问会提示设置管理员用户名和密码——强烈建议设置,不然任何人访问服务器 IP 的 18080 端口都能控制你的 BitComet。
- 以后添加任务、暂停、限速都在 WebUI 里操作。
配置文件路径
/etc/bitcomet/settings.conf # 主配置(端口、用户名、密码等)
/var/log/bitcomet/ # 运行日志
~/Downloads/ # 默认下载目录(可改)
手动编辑 settings.conf 可以在不启动 WebUI 的情况下修改配置——比如服务器没有装浏览器、只能 SSH 远程编辑时。
通用命令行参数(Windows / macOS / Linux 通用)
以下参数在任何平台都能使用,命令行参数优先级高于 GUI 配置:
bitcomet.exe [options] [URL or torrent file...]
添加任务相关
| 参数 | 说明 | 示例 |
|---|---|---|
| URL | 直接在命令行添加一个或多个下载任务(BT 磁链、HTTP/FTP 链接、本地 torrent 文件路径都行) | bitcomet.exe "magnet:?xt=urn:btih:..." |
--dir <path> | 指定下载保存目录(覆盖 GUI 默认值) | bitcomet.exe --dir "D:\Downloads" "magnet:..." |
--category <tag> | 给新添加的任务打标签 | bitcomet.exe --category 电影 "magnet:..." |
--priority <n> | 新任务的优先级(-1=跳过, 0=低, 1=正常, 2=高, 3=最高) | bitcomet.exe --priority 3 "magnet:..." |
--save-as <filename> | 给 HTTP/FTP 下载指定保存文件名 | bitcomet.exe --save-as "myfile.zip" "http://..." |
行为控制相关
| 参数 | 说明 | 示例 |
|---|---|---|
--headless | 后台无窗口运行(GUI 不显示、进程在托盘) | bitcomet.exe --headless |
--quit | 关闭已运行的 BitComet 实例 | bitcomet.exe --quit |
--pause-all | 暂停所有任务 | bitcomet.exe --pause-all |
--resume-all | 继续所有暂停的任务 | bitcomet.exe --resume-all |
--start-at-login | 设置开机自启 | bitcomet.exe --start-at-login |
--no-start-at-login | 取消开机自启 | bitcomet.exe --no-start-at-login |
进程管理相关
| 参数 | 说明 | 示例 |
|---|---|---|
--background | 让 BitComet 在后台新进程启动(立即返回、不阻塞当前终端) | bitcomet.exe --background |
--config <path> | 指定配置文件位置(默认走平台默认路径) | bitcomet.exe --config "C:\custom\config.xml" |
--pidfile <path> | 把当前进程 PID 写入文件(用于脚本监控) | bitcomet.exe --pidfile /tmp/bitcomet.pid |
--log <path> | 指定日志输出文件(GUI 模式下也能生效) | bitcomet.exe --log /var/log/bitcomet.log |
Windows 端常用命令行场景
自动化添加任务
比如你有一个脚本,每天定时从某个文件里读取最新的 BT 资源、自动加入 BitComet:
$magnet = "magnet:?xt=urn:btih:abcdef1234567890..."
& "C:\Program Files\BitComet\BitComet.exe" "$magnet"
BitComet 会自动在后台启动(已经在运行的情况下不重启、直接添加任务),磁链对应的任务会自动加入下载队列。
静默启动不显示 GUI
设置 BitComet 开机自启但不想看到主界面弹出:
& "C:\Program Files\BitComet\BitComet.exe" --headless --start-at-login
BitComet 开机后直接缩到系统托盘,完全静默。
用计划任务做自动化
配合 Windows 任务计划程序(Task Scheduler)可以做很复杂的自动化:
- 打开任务计划程序 → 创建基本任务。
- 触发器:比如"每天 22:00"。
- 操作:启动程序 →
BitComet.exe --resume-all(继续所有暂停的任务)。 - 另一个任务可以在"每天 09:00" 时执行
BitComet.exe --pause-all(暂停所有任务给工作让路)。
macOS 端命令行
macOS 端 BitComet 主程序在:
/Applications/BitComet.app/Contents/MacOS/BitComet
使用时需要用完整路径:
open -a BitComet "magnet:?xt=urn:btih:..." # 简单方式,调用默认关联
/Applications/BitComet.app/Contents/MacOS/BitComet --headless # 高级方式
macOS 的 open 命令可以直接把 URL 丢给关联的默认应用,是最方便的添加任务方式。
WebUI API(进阶)
BitComet WebUI 提供了 HTTP JSON API,可以用 curl、Python requests 等任意 HTTP 客户端调用,实现完全的程序化控制。比如:
# 列出所有任务
curl -u admin:password http://localhost:18080/api/v1/tasks/list
# 添加一个新任务
curl -X POST -u admin:password \
-H "Content-Type: application/json" \
-d '{"url": "magnet:?xt=urn:btih:...", "category": "电影"}' \
http://localhost:18080/api/v1/tasks/add
API 文档在 BitComet 帮助 Wiki 里(搜索 "WebUI API")。对于想要写自己的下载管理系统的人非常有用。
脚本集成实战
场景:下载完成后自动移动到指定目录
BitComet 没有内置的"任务完成后执行脚本"钩子,但可以用命令行 + 任务计划程序实现:
思路:
- 写一个 Python 或 PowerShell 脚本,定时查询 BitComet WebUI 的任务状态。
- 找到"下载完成但未处理"的任务。
- 用 WebUI API 或文件系统操作把文件移动到指定目录。
- 在任务计划程序里每 5 分钟运行一次这个脚本。
场景:批量添加一个目录里所有 torrent
$torrents = Get-ChildItem -Path "C:\downloads\queue" -Filter "*.torrent"
foreach ($t in $torrents) {
& "C:\Program Files\BitComet\BitComet.exe" $t.FullName
}
把这个脚本保存为 .ps1,用任务计划程序定时运行,就能实现"把 torrent 丢进一个文件夹、BitComet 自动加入下载"的效果。
注意事项
- 已运行的 BitComet 实例:如果你在命令行添加任务时 BitComet 已经在运行,它不会启动第二个实例——而是把任务发给正在运行的那个实例处理。这是正确行为,不用担心重复启动。
- 端口冲突:如果指定的 WebUI 端口已被其他进程占用,BitComet 会拒绝启动并报错。换一个端口或关闭占用进程。
- 权限问题:Linux 端守护进程默认以
bitcomet用户运行——确保下载目录对这个用户有写权限,否则会报"无法创建文件"。 - 系统资源:后台运行的 BitComet 进程虽然不显示 GUI,但后台守护进程、WebUI、BT 协议栈全部正常运行,CPU/内存占用和 GUI 模式一样。