Installare B3 e metterlo come servizio
Inviato: lunedì 6 ottobre 2025, 10:00
Aggiornamento del sistema e installazione dipendenze
python2 serve perché B3 legacy gira su Python 2.7
python2-dev e python2-pip servono per eventuali moduli aggiuntivi o plugin
Creazione della cartella di B3
-r = utente di sistema
-m -d /opt/b3 = usa /opt/b3 come home
-s /usr/sbin/nologin = non può fare login interattivo
Clonare B3 dal repository ufficiale
Clona tutto il codice direttamente in /opt/b3
Installazione di B3
Questo installa i moduli Python necessari globalmente (in /usr/local)
In alternativa puoi usare virtualenv, ma per semplicità globale va bene così
Configurazione dei file XML per i server
Vai nella cartella di configurazione:
Crea il file di configurazione per ogni server LinuxGSM, ad esempio:
Nei file XML assicurati di impostare:
Creazione della unit template systemd
Crea /etc/systemd/system/b3@.service:
incolla:
%i prende il nome dell’istanza quando avvii b3@cod4 o b3@sof2
RestartSec=5 evita che systemd riavvii troppo velocemente se c’è un crash
LimitNOFILE aumenta il numero massimo di file descriptor (utile se B3 gestisce molte connessioni)
Ricaricare systemd e abilitare le istanze
Avviare, fermare e controllare B3
Avviare:
Fermare:
Riavviare:
Stato:
Log live:
Test manuale (opzionale)
Se vuoi vedere eventuali errori di configurazione prima di systemd:
Questo ti mostra direttamente eventuali problemi di XML, RCON o logfile
1
Consiglio finale
Per aggiungere altri server basta creare il file XML corrispondente (b3_sof2.xml) e avviare l’istanza:
Tutte le istanze possono girare indipendentemente, con lo stesso utente dei rispettivi server LinuxGSM.
Codice: Seleziona tutto
sudo apt update
Codice: Seleziona tutto
sudo apt install git python2 python2-dev curl
Codice: Seleziona tutto
sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
Codice: Seleziona tutto
sudo python2 get-pip.py
Codice: Seleziona tutto
sudo pip2 install -r /root/requirements.txt
python2-dev e python2-pip servono per eventuali moduli aggiuntivi o plugin
Codice: Seleziona tutto
sudo useradd -r -m -d /opt/b3 -s /usr/sbin/nologin b3
-m -d /opt/b3 = usa /opt/b3 come home
-s /usr/sbin/nologin = non può fare login interattivo
Codice: Seleziona tutto
sudo mkdir -p /opt/b3
Codice: Seleziona tutto
sudo chown -R b3:b3 /opt/b3
Codice: Seleziona tutto
cd /opt/b3
Codice: Seleziona tutto
git clone https://github.com/BigBrotherBot/big-brother-bot.git .
Codice: Seleziona tutto
python2 setup.py install --prefix=/usr/local
In alternativa puoi usare virtualenv, ma per semplicità globale va bene così
Vai nella cartella di configurazione:
Codice: Seleziona tutto
cd /opt/b3/b3/conf
Codice: Seleziona tutto
b3_cod4.xml # per cod4server
b3_sof2.xml # per sof2server
b3_cod2.xml # ecc.
Codice: Seleziona tutto
<game> → parser corretto (cod4x18 per CoD4X, sof2 per SoF2 ecc.)
<rcon_ip> e <rcon_port> → RCON del server
<rcon_password> → password RCON
<logfile> → percorso log del server LinuxGSM (~/serverfiles/main/games_mp.log)
Crea /etc/systemd/system/b3@.service:
Codice: Seleziona tutto
nano /etc/systemd/system/b3@.service
Codice: Seleziona tutto
[Unit]
Description=Big Brother Bot - %i
After=network.target
[Service]
User=b3
WorkingDirectory=/opt/b3
ExecStart=/usr/bin/python2 /opt/b3/b3_run.py --restart -c /opt/b3/b3/conf/b3_%i.xml
Restart=always
RestartSec=5
LimitNOFILE=4096
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
%i prende il nome dell’istanza quando avvii b3@cod4 o b3@sof2
RestartSec=5 evita che systemd riavvii troppo velocemente se c’è un crash
LimitNOFILE aumenta il numero massimo di file descriptor (utile se B3 gestisce molte connessioni)
Codice: Seleziona tutto
sudo systemctl daemon-reload
Codice: Seleziona tutto
sudo systemctl enable b3@cod4 # parte al boot
sudo systemctl enable b3@sof2 # se hai altri server
Avviare:
Codice: Seleziona tutto
sudo systemctl start b3@cod4
Codice: Seleziona tutto
sudo systemctl stop b3@cod4
Codice: Seleziona tutto
sudo systemctl restart b3@cod4
Codice: Seleziona tutto
sudo systemctl status b3@cod4 -l
Codice: Seleziona tutto
sudo journalctl -u b3@cod4 -f
Se vuoi vedere eventuali errori di configurazione prima di systemd:
Codice: Seleziona tutto
sudo -u cod4server /usr/bin/python2 /opt/b3/b3_run.py --restart -c /opt/b3/b3/conf/b3_cod4.xml
1
Per aggiungere altri server basta creare il file XML corrispondente (b3_sof2.xml) e avviare l’istanza:
Codice: Seleziona tutto
sudo systemctl start b3@sof2
Tutte le istanze possono girare indipendentemente, con lo stesso utente dei rispettivi server LinuxGSM.