Files
aitbc/docs/systemd_services.md
oib 9b9c5beb23 ```
chore: enhance .gitignore and remove obsolete documentation files

- Reorganize .gitignore with categorized sections for better maintainability
- Add comprehensive ignore patterns for Python, Node.js, databases, logs, and build artifacts
- Add project-specific ignore rules for coordinator, explorer, and deployment files
- Remove outdated documentation: BITCOIN-WALLET-SETUP.md, LOCAL_ASSETS_SUMMARY.md, README-CONTAINER-DEPLOYMENT.md, README-DOMAIN-DEPLOYMENT.md
```
2026-01-24 14:44:51 +01:00

130 lines
3.7 KiB
Markdown

# AITBC Systemd Services
All AITBC services are now managed by systemd for automatic startup, monitoring, and logging.
## Services Overview
| Service | Port | Description | Status |
|---------|------|-------------|--------|
| `aitbc-coordinator-api` | 8000 | Main Coordinator API for blockchain operations | Active |
| `aitbc-exchange-api` | 3003 | Exchange API for trading operations | Active |
| `aitbc-exchange-frontend` | 3002 | Exchange web frontend | Active |
| `aitbc-wallet` | 8001 | Wallet daemon service | Pending |
| `aitbc-node` | 8545 | Blockchain node service | Pending |
## Service Management
### Check Status
```bash
/root/aitbc/scripts/manage_services.sh status
```
### Start All Services
```bash
/root/aitbc/scripts/manage_services.sh start
```
### Stop All Services
```bash
/root/aitbc/scripts/manage_services.sh stop
```
### Restart All Services
```bash
/root/aitbc/scripts/manage_services.sh restart
```
### View Logs
```bash
# View specific service logs
/root/aitbc/scripts/manage_services.sh logs coordinator-api
/root/aitbc/scripts/manage_services.sh logs exchange-api
/root/aitbc/scripts/manage_services.sh logs exchange-frontend
/root/aitbc/scripts/manage_services.sh logs wallet
/root/aitbc/scripts/manage_services.sh logs node
# Or use systemctl directly
sudo journalctl -u aitbc-coordinator-api -f
sudo journalctl -u aitbc-exchange-api -f
sudo journalctl -u aitbc-exchange-frontend -f
```
### Enable/Disable Autostart
```bash
# Enable services to start on boot
/root/aitbc/scripts/manage_services.sh enable
# Disable services from starting on boot
/root/aitbc/scripts/manage_services.sh disable
```
## Individual Service Control
You can also control services individually using systemctl:
```bash
# Start a specific service
sudo systemctl start aitbc-coordinator-api
# Stop a specific service
sudo systemctl stop aitbc-coordinator-api
# Restart a specific service
sudo systemctl restart aitbc-coordinator-api
# Check if service is enabled
sudo systemctl is-enabled aitbc-coordinator-api
# Enable service on boot
sudo systemctl enable aitbc-coordinator-api
# Disable service on boot
sudo systemctl disable aitbc-coordinator-api
```
## Service Files Location
Service definition files are located at:
- `/etc/systemd/system/aitbc-coordinator-api.service`
- `/etc/systemd/system/aitbc-exchange-api.service`
- `/etc/systemd/system/aitbc-exchange-frontend.service`
- `/etc/systemd/system/aitbc-wallet.service`
- `/etc/systemd/system/aitbc-node.service`
## Troubleshooting
### Service Not Starting
1. Check the service status: `sudo systemctl status aitbc-service-name`
2. View the logs: `sudo journalctl -u aitbc-service-name -n 50`
3. Check if port is already in use: `netstat -tlnp | grep :port`
### Service Keeps Restarting
1. The service is configured to auto-restart on failure
2. Check logs for the error causing failures
3. Temporarily disable auto-restart for debugging: `sudo systemctl stop aitbc-service-name`
### Manual Override
If systemd services are not working, you can run services manually:
```bash
# Coordinator API
cd /root/aitbc/apps/coordinator-api
/root/aitbc/.venv/bin/python -m uvicorn src.app.main:app --host 0.0.0.0 --port 8000
# Exchange API
cd /root/aitbc/apps/trade-exchange
/root/aitbc/.venv/bin/python simple_exchange_api.py
# Exchange Frontend
cd /root/aitbc/apps/trade-exchange
/root/aitbc/.venv/bin/python server.py --port 3002
```
## Benefits of Systemd
1. **Automatic Startup**: Services start automatically on boot
2. **Automatic Restart**: Services restart on failure
3. **Centralized Logging**: All logs go to journald
4. **Resource Management**: Systemd manages service resources
5. **Dependency Management**: Services can depend on each other
6. **Security**: Services run with specified user/group permissions