api-server/deploy/zhixi-nest-worker.service
wangdl bd60c2786f
Some checks failed
Deploy API Server / build-and-deploy (push) Has been cancelled
fix: correct require paths for dist/src output + systemd user
- worker.main.ts: require('../../package.json') for dist/src/ location
- worker-heartbeat.service.ts: require('../../../package.json') + try/catch
- systemd units: User=ubuntu (www-data not present on production)
- EnvironmentFile: /opt/zhixi/env/.env.production

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 21:26:05 +08:00

40 lines
956 B
Desktop File

[Unit]
Description=zhixi NestJS Worker (BullMQ Processor)
After=network.target mysql.service redis.service
Wants=mysql.service redis.service
# Start after API is up (API runs Prisma migration on start)
After=zhixi-nest-api.service
[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/opt/zhixi/backend
ExecStart=/usr/bin/node dist/src/worker.main.js
Restart=always
RestartSec=10
TimeoutStopSec=60
# Worker needs extra time: BullMQ graceful shutdown waits for active jobs,
# then SIGKILL from systemd after TimeoutStopSec provides hard deadline.
# Environment
Environment=NODE_ENV=production
EnvironmentFile=/opt/zhixi/env/.env.production
# Memory limit (Worker jobs may consume memory)
MemoryMax=512M
# Security
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/opt/zhixi/backend/uploads
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=zhixi-nest-worker
[Install]
WantedBy=multi-user.target