Skip to content

Penyelesaian Masalah: Daemon ​

Daemon Tidak Mahu Bermula ​

"Triggerfish is already running" ​

Mesej ini muncul apabila fail log dikunci oleh proses lain. Pada Windows, ini dikesan melalui EBUSY / "os error 32" apabila penulis fail cuba membuka fail log.

Pembetulan:

bash
triggerfish status    # Semak sama ada ada tika yang sedang berjalan
triggerfish stop      # Hentikan tika sedia ada
triggerfish start     # Mulakan semula

Jika triggerfish status melaporkan daemon tidak berjalan tetapi anda masih mendapat ralat ini, proses lain memegang fail log terbuka. Semak proses zombie:

bash
# Linux
ps aux | grep triggerfish

# macOS
ps aux | grep triggerfish

# Windows
tasklist | findstr triggerfish

Bunuh sebarang proses lapuk, kemudian cuba lagi.

Port 18789 atau 18790 sudah digunakan ​

Gateway mendengar pada port 18789 (WebSocket) dan Tidepool pada 18790 (A2UI). Jika aplikasi lain menduduki port-port ini, daemon akan gagal untuk bermula.

Cari apa yang menggunakan port:

bash
# Linux
ss -tlnp | grep 18789

# macOS
lsof -i :18789

# Windows
netstat -ano | findstr 18789

Tiada pembekal LLM dikonfigurasi ​

Jika triggerfish.yaml tiada bahagian models atau pembekal utama tidak mempunyai kunci API, gateway mencatat:

No LLM provider configured. Check triggerfish.yaml.

Pembetulan: Jalankan wizard persediaan atau konfigurasikan secara manual:

bash
triggerfish dive                    # Persediaan interaktif
# atau
triggerfish config set models.primary.provider anthropic
triggerfish config set models.primary.model claude-sonnet-4-20250514
triggerfish config set-secret provider:anthropic:apiKey sk-ant-...

Fail konfigurasi tidak ditemui ​

Daemon keluar jika triggerfish.yaml tidak wujud di laluan yang dijangka. Mesej ralat berbeza mengikut persekitaran:

  • Pemasangan natif: Mencadangkan untuk menjalankan triggerfish dive
  • Docker: Mencadangkan untuk memasang fail konfigurasi dengan -v ./triggerfish.yaml:/data/triggerfish.yaml

Semak laluan:

bash
ls ~/.triggerfish/triggerfish.yaml      # Natif
docker exec triggerfish ls /data/       # Docker

Penyelesaian rahsia gagal ​

Jika konfigurasi anda merujuk rahsia (secret:provider:anthropic:apiKey) yang tidak wujud dalam keychain, daemon keluar dengan ralat menamakan rahsia yang hilang.

Pembetulan:

bash
triggerfish config set-secret provider:anthropic:apiKey <kunci-anda>

Pengurusan Perkhidmatan ​

systemd: daemon berhenti selepas log keluar ​

Secara lalai, perkhidmatan pengguna systemd berhenti apabila pengguna log keluar. Triggerfish mengaktifkan loginctl enable-linger semasa pemasangan untuk mencegah ini. Jika linger gagal diaktifkan:

bash
# Semak status linger
loginctl show-user $USER | grep Linger

# Aktifkan (mungkin memerlukan sudo)
sudo loginctl enable-linger $USER

Tanpa linger, daemon hanya berjalan semasa anda log masuk.

systemd: perkhidmatan gagal bermula ​

Semak status perkhidmatan dan jurnal:

bash
systemctl --user status triggerfish.service
journalctl --user -u triggerfish.service --no-pager -n 50

Punca biasa:

  • Binari dipindah atau dipadam. Fail unit mempunyai laluan yang dikodkan keras ke binari. Pasang semula daemon: triggerfish dive --install-daemon
  • Isu PATH. Unit systemd menangkap PATH anda semasa pemasangan. Jika anda memasang alat baru (seperti pelayan MCP) selepas pemasangan daemon, pasang semula daemon untuk mengemas kini PATH.
  • DENO_DIR tidak ditetapkan. Unit systemd menetapkan DENO_DIR=~/.cache/deno. Jika direktori ini tidak boleh ditulis, plugin SQLite FFI akan gagal dimuatkan.

launchd: daemon tidak bermula semasa log masuk ​

Semak status plist:

bash
launchctl list | grep triggerfish
launchctl print gui/$(id -u)/dev.triggerfish.agent

Jika plist tidak dimuatkan:

bash
launchctl load ~/Library/LaunchAgents/dev.triggerfish.agent.plist

Punca biasa:

  • Plist dibuang atau rosak. Pasang semula: triggerfish dive --install-daemon
  • Binari dipindah. Plist mempunyai laluan yang dikodkan keras. Pasang semula selepas memindah binari.
  • PATH semasa pemasangan. Seperti systemd, launchd menangkap PATH apabila plist dicipta. Pasang semula jika anda menambah alat baru ke PATH.

Windows: perkhidmatan tidak bermula ​

Semak status perkhidmatan:

powershell
sc query Triggerfish
Get-Service Triggerfish

Punca biasa:

  • Perkhidmatan tidak dipasang. Pasang semula: jalankan pemasang sebagai Pentadbir.
  • Laluan binari berubah. Pembalut perkhidmatan mempunyai laluan yang dikodkan keras. Pasang semula.
  • Kompilasi .NET gagal semasa pemasangan. Pembalut perkhidmatan C# memerlukan csc.exe dari .NET Framework 4.x.

Naik taraf merosakkan daemon ​

Selepas menjalankan triggerfish update, daemon dimulakan semula secara automatik. Jika tidak:

  1. Binari lama mungkin masih berjalan. Hentikannya secara manual: triggerfish stop
  2. Pada Windows, binari lama dinamakan semula ke .old. Jika penggantian nama gagal, kemas kini akan ralat. Hentikan perkhidmatan terlebih dahulu, kemudian kemas kini.

Isu Fail Log ​

Fail log kosong ​

Daemon menulis ke ~/.triggerfish/logs/triggerfish.log. Jika fail wujud tetapi kosong:

  • Daemon mungkin baru sahaja bermula. Tunggu sebentar.
  • Tahap log ditetapkan ke quiet, yang hanya mencatat mesej tahap ERROR. Tetapkan ke normal atau verbose:
bash
triggerfish config set logging.level normal

Log terlalu banyak ​

Tetapkan tahap log ke quiet untuk hanya melihat ralat:

bash
triggerfish config set logging.level quiet

Pemetaan tahap:

Nilai konfigurasiTahap minimum dicatat
quietERROR sahaja
normalINFO dan ke atas
verboseDEBUG dan ke atas
debugTRACE dan ke atas (semua)

Putaran log ​

Log diputar secara automatik apabila fail semasa melebihi 1 MB. Sehingga 10 fail yang diputar disimpan:

triggerfish.log        # Semasa
triggerfish.1.log      # Sandaran terbaru
triggerfish.2.log      # Kedua paling terkini
...
triggerfish.10.log     # Paling lama (dipadam apabila putaran baru berlaku)

Tiada putaran berasaskan masa, hanya berasaskan saiz.