Skip to content

Service Start Issues

Troubleshooting guide for services that won't start or keep restarting.

Overview

Common reasons services fail to start: - Missing dependencies - Configuration errors - Permission problems - Port conflicts - Resource constraints - Database connection failures

Quick Diagnostics

Check Service Status

sudo mb-status

Identifies which services are down.

View Service Errors

sudo systemctl status mb-rpcd
sudo journalctl -u mb-rpcd -n 50

Shows recent errors.

Check Dependencies

sudo systemctl status mariadb
sudo systemctl status redis-server
sudo systemctl status postfix

Ensures prerequisites are running.

Common Problems

mb-rpcd Won't Start

Check database:

sudo systemctl status mariadb
sudo mysql -u mailborder -p mailborder -e "SELECT 1"

Check Redis:

redis-cli ping

Check socket directory:

sudo ls -lh /var/run/mailborder/
sudo mkdir -p /var/run/mailborder
sudo chown mailborder:mailborder /var/run/mailborder
sudo chmod 755 /var/run/mailborder

Check configuration:

sudo mb-config --verify

mb-filter Won't Start

Check mb-rpcd:

sudo systemctl status mb-rpcd

Check Rspamd:

sudo systemctl status rspamd
rspamc ping

Check ClamAV:

sudo systemctl status clamav-daemon
sudo clamdscan --version

Check port:

sudo netstat -tulpn | grep 10031
# Should be available (not in use)

Database Connection Failed

Test connection:

sudo mysql -u mailborder -p

Check credentials:

sudo cat /etc/mailborder/database.conf

Verify database exists:

sudo mysql -u root -p -e "SHOW DATABASES" | grep mailborder

Verify permissions:

sudo mysql -u root -p -e "SHOW GRANTS FOR 'mailborder'@'localhost'"

Fix permissions if needed:

sudo mysql -u root -p << EOF
GRANT ALL PRIVILEGES ON mailborder.* TO 'mailborder'@'localhost';
FLUSH PRIVILEGES;
EOF

Redis Connection Failed

Check service:

sudo systemctl status redis-server

Test connection:

redis-cli ping
# Expected: PONG

Check port:

sudo netstat -tulpn | grep 6379

Check configuration:

sudo cat /etc/redis/redis.conf | grep -E "bind|port"

Permission Errors

Check file ownership:

sudo ls -lh /var/run/mailborder/
sudo ls -lh /var/log/mailborder/
sudo ls -lh /var/spool/mailborder/

Fix permissions:

sudo chown -R mailborder:mailborder /var/run/mailborder
sudo chown -R mailborder:mailborder /var/log/mailborder
sudo chown -R mailborder:mailborder /var/spool/mailborder

sudo chmod 755 /var/run/mailborder
sudo chmod 755 /var/log/mailborder
sudo chmod 750 /var/spool/mailborder

Port Already in Use

Check what's using port:

sudo lsof -i :10031

Kill conflicting process:

sudo kill <PID>

Or change port (if appropriate):

sudo mb-config set filter.port 10041
sudo systemctl restart mb-filter

Disk Full

Check disk space:

df -h

Clean up:

# Logs
sudo mb-maintenance --cleanup-logs

# Quarantine
sudo mb-quarantine-cleanup

# Temporary files
sudo rm -rf /tmp/mbv6-*
sudo rm -rf /var/tmp/mbv6-*

Out of Memory

Check memory:

free -m

Check service memory limits:

sudo systemctl show mb-rpcd -p MemoryLimit
sudo systemctl show mb-filter -p MemoryLimit

Increase limits if needed:

sudo systemctl edit mb-rpcd

Add:

[Service]
MemoryLimit=2G

Then:

sudo systemctl daemon-reload
sudo systemctl restart mb-rpcd

File Descriptor Limit

Check current limit:

sudo systemctl show mb-rpcd -p LimitNOFILE

Increase if needed:

sudo systemctl edit mb-rpcd

Add:

[Service]
LimitNOFILE=65536

Service Keeps Restarting

Check restart status:

sudo systemctl status mb-filter

View restart history:

sudo journalctl -u mb-filter | grep "Started\|Stopped"

Disable auto-restart temporarily:

sudo systemctl edit mb-filter

Add:

[Service]
Restart=no

Diagnose issue, then re-enable.

Step-by-Step Recovery

Complete Service Restart

  1. Stop all services:

    sudo mb-services stop
    sudo systemctl stop postfix rspamd clamav-daemon
    

  2. Check dependencies:

    sudo systemctl restart mariadb
    sudo systemctl restart redis-server
    

  3. Clear runtime files:

    sudo rm -rf /var/run/mailborder/*
    

  4. Start infrastructure:

    sudo systemctl start postfix
    sudo systemctl start rspamd
    sudo systemctl start clamav-daemon
    

  5. Start Mailborder:

    sudo mb-services start
    

  6. Verify:

    sudo mb-status
    

From Scratch Recovery

If services completely broken:

  1. Backup configuration:

    sudo mb-backup --config-only
    

  2. Stop everything:

    sudo mb-services stop
    sudo systemctl stop mariadb redis-server postfix rspamd clamav-daemon nginx
    

  3. Check for remnants:

    sudo rm -rf /var/run/mailborder/*
    sudo rm -rf /tmp/mbv6-*
    

  4. Verify database:

    sudo systemctl start mariadb
    sudo mysql -u mailborder -p mailborder -e "SELECT 1"
    

  5. Verify Redis:

    sudo systemctl start redis-server
    redis-cli ping
    

  6. Start core services:

    sudo systemctl start postfix rspamd clamav-daemon nginx
    

  7. Start Mailborder:

    sudo systemctl start mb-rpcd
    sleep 5
    sudo mb-services start
    

  8. Verify:

    sudo mb-status
    sudo mb-doctor
    

Prevention

Regular Monitoring

Add to cron:

*/5 * * * * /usr/local/bin/check-services.sh

Script content:

#!/bin/bash
if ! sudo mb-status > /dev/null 2>&1; then
    echo "Mailborder services issue detected" | \
        mail -s "Service Alert" admin@example.com
    sudo mb-services restart
fi

Health Checks

Daily checks:

sudo mb-doctor
sudo mb-status

Log Rotation

Ensure logs don't fill disk:

sudo cat /etc/logrotate.d/mailborder

Regular Restarts

Schedule weekly maintenance restart:

# Sunday 2 AM
0 2 * * 0 /usr/local/bin/weekly-restart.sh

See Also