Uruchomienie Odoo jako usługi systemd to profesjonalne rozwiązanie, które zapewnia automatyczne uruchamianie systemu ERP po restarcie serwera oraz łatwe zarządzanie procesem. W tym przewodniku dowiesz się, jak poprawnie skonfigurować Odoo jako usługę systemd w systemach Linux.
Dlaczego warto uruchomić Odoo jako usługę systemd?
Systemd to nowoczesny system inicjalizacji i zarządzania usługami w dystrybucjach Linux. Konfiguracja Odoo jako usługi systemd przynosi szereg korzyści:
- Automatyczne uruchamianie - Odoo startuje automatycznie po restarcie serwera
- Łatwe zarządzanie - Proste polecenia do uruchamiania, zatrzymywania i restartowania
- Monitoring procesów - Systemd monitoruje status aplikacji i może automatycznie ją restartować w przypadku awarii
- Izolacja zasobów - Możliwość określenia limitów zasobów systemowych
- Logowanie - Centralne zarządzanie logami przez journald
Wymagania wstępne
Przed skonfigurowaniem usługi systemd upewnij się, że:
- Odoo jest zainstalowane w systemie - jeśli jeszcze tego nie zrobiłeś, sprawdź jak zainstalować Odoo na Ubuntu
- PostgreSQL jest skonfigurowany - więcej informacji znajdziesz w artykule o konfiguracji bazy danych PostgreSQL dla Odoo
- Masz przygotowany plik konfiguracyjny odoo.conf - zobacz kompleksowy przewodnik konfiguracji
- Posiadasz uprawnienia root lub sudo w systemie
Tworzenie użytkownika systemowego dla Odoo
Ze względów bezpieczeństwa zaleca się uruchamianie Odoo na dedykowanym użytkowniku systemowym bez uprawnień root:
sudo adduser --system --group odoo
Ten użytkownik będzie właścicielem procesów Odoo i plików związanych z aplikacją. Katalog domowy zostanie automatycznie utworzony przez instalator Odoo lub możesz go określić ręcznie podczas instalacji.
Konfiguracja pliku usługi systemd
Aby uruchomić Odoo jako usługę systemd, musisz utworzyć plik jednostki usługi (unit file). Jest to główny krok w procesie konfiguracji.
Tworzenie pliku usługi
Utwórz nowy plik usługi w katalogu systemd:
sudo nano /etc/systemd/system/odoo.service
Zawartość pliku odoo.service
Wklej następującą konfigurację do utworzonego pliku:
[Unit]
Description=Odoo ERP System
Documentation=https://www.odoo.com
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
SyslogIdentifier=odoo
PermissionsStartOnly=true
WorkingDirectory=/opt/odoo
ExecStart=/opt/odoo/odoo/odoo-bin --config=/etc/odoo/odoo.conf
StandardOutput=journal+console
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Wyjaśnienie sekcji konfiguracji
Sekcja [Unit] zawiera podstawowe informacje o usłudze:
Description- opis usługi widoczny w systemieAfter- określa, że usługa powinna wystartować po sieci i PostgreSQLRequires- definiuje zależność od PostgreSQL
Sekcja [Service] określa parametry uruchomienia:
Type=simple- standardowy typ usługi dla aplikacji działających na pierwszym planieUseriGroup- określają użytkownika systemowegoWorkingDirectory- katalog roboczy, z którego uruchamiana jest usługaExecStart- polecenie uruchamiające Odoo (dostosuj ścieżki do swojej instalacji)Restart=on-failure- automatyczny restart w przypadku awariiRestartSec=10- odczekanie 10 sekund przed restartem
Sekcja [Install] określa cel systemowy dla automatycznego uruchamiania.
Dostosowanie ścieżek w pliku usługi
Upewnij się, że ścieżki w pliku usługi są poprawne dla Twojej instalacji:
- WorkingDirectory - katalog główny instalacji Odoo (np.
/opt/odoo) - ExecStart - ścieżka do pliku wykonywalnego Odoo (np.
/opt/odoo/odoo/odoo-binlub/usr/bin/odoodla instalacji z pakietu) - --config - ścieżka do pliku konfiguracyjnego (np.
/etc/odoo/odoo.conf) - User/Group - nazwa użytkownika systemowego (zazwyczaj
odoo)
Uruchamianie i zarządzanie usługą Odoo
Po utworzeniu pliku usługi wykonaj następujące kroki:
Przeładowanie konfiguracji systemd
sudo systemctl daemon-reload
Uruchomienie usługi Odoo
sudo systemctl start odoo
Sprawdzenie statusu usługi
sudo systemctl status odoo
Jeśli wszystko działa poprawnie, zobaczysz status "active (running)" i informacje o działającym procesie.
Włączenie automatycznego uruchamiania
Aby Odoo uruchamiało się automatycznie po restarcie serwera:
sudo systemctl enable odoo
Przydatne polecenia do zarządzania usługą
Po skonfigurowaniu Odoo jako usługi systemd, możesz korzystać z następujących poleceń:
sudo systemctl stop odoo- zatrzymanie usługisudo systemctl restart odoo- restart usługisudo systemctl reload odoo- przeładowanie konfiguracji bez zatrzymywania (wymaga odpowiedniej obsługi sygnałów w Odoo)sudo systemctl disable odoo- wyłączenie automatycznego uruchamianiasudo journalctl -u odoo -f- podgląd logów w czasie rzeczywistymsudo journalctl -u odoo --since today- logi z dzisiejszego dnia
Rozwiązywanie problemów
Usługa nie startuje
Jeśli usługa nie uruchamia się, sprawdź logi:
sudo journalctl -xe -u odoo
Najczęstsze przyczyny problemów:
- Nieprawidłowe ścieżki w pliku usługi (szczególnie ExecStart i WorkingDirectory)
- Błędy w pliku konfiguracyjnym odoo.conf
- Brak uprawnień do katalogów (addons, log, data_dir)
- PostgreSQL nie jest uruchomiony lub nieprawidłowo skonfigurowany
- Port jest już zajęty przez inny proces
- Brak wymaganych zależności Pythona
Weryfikacja uprawnień
Upewnij się, że użytkownik odoo ma odpowiednie uprawnienia:
sudo chown -R odoo:odoo /opt/odoo
sudo chown -R odoo:odoo /var/log/odoo
sudo chown odoo:odoo /etc/odoo/odoo.conf
sudo chmod 640 /etc/odoo/odoo.conf
Zaawansowane opcje konfiguracji
Limit zasobów
Możesz dodać limity zasobów w sekcji [Service]:
LimitNOFILE=524288
LimitNPROC=8192
MemoryLimit=2G
CPUQuota=200%
Parametr LimitNOFILE określa maksymalną liczbę otwartych plików - dla Odoo 17+ zalecana wartość to 524288. CPUQuota pozwala ograniczyć użycie CPU (200% = 2 rdzenie).
Zmienne środowiskowe
Jeśli potrzebujesz ustawić zmienne środowiskowe:
Environment="PATH=/opt/odoo/venv/bin:/usr/local/bin:/usr/bin:/bin"
Environment="LC_ALL=pl_PL.UTF-8"
Environment="LANG=pl_PL.UTF-8"
Konfiguracja wieloinstancyjna
Aby uruchomić wiele instancji Odoo, utwórz osobne pliki usług z różnymi nazwami (np. odoo-prod.service, odoo-test.service). Dla każdej instancji musisz:
- Utworzyć osobny plik konfiguracyjny z unikalnym portem (
xmlrpc_port) i longpolling_port - Określić oddzielny katalog data_dir dla każdej instancji
- Opcjonalnie użyć oddzielnych baz danych PostgreSQL
- Skonfigurować różne ścieżki dla logów
Przykład dla drugiej instancji:
ExecStart=/opt/odoo/odoo/odoo-bin --config=/etc/odoo/odoo-test.conf
FAQ - Najczęściej zadawane pytania
Jak zmienić port, na którym działa usługa Odoo?
Port Odoo konfiguruje się w pliku odoo.conf, nie w pliku usługi systemd. Edytuj plik konfiguracyjny i zmień parametr xmlrpc_port, a następnie zrestartuj usługę poleceniem sudo systemctl restart odoo. Szczegółowy przewodnik znajdziesz w artykule o tym, jak zmienić port Odoo.
Czy mogę uruchomić Odoo jako usługę na Windows?
Systemd jest specyficzny dla systemów Linux. Na Windows używa się innego mechanizmu - usług Windows (Windows Services). Podczas instalacji Odoo na Windows instalator automatycznie konfiguruje usługę systemową, którą możesz zarządzać przez Panel Usług Windows.
Co zrobić gdy usługa Odoo nie uruchamia się automatycznie po aktualizacji?
Po aktualizacji Odoo do nowszej wersji sprawdź, czy ścieżki w pliku /etc/systemd/system/odoo.service są nadal poprawne. Czasami aktualizacja może zmienić lokalizację plików wykonywalnych. Wykonaj sudo systemctl daemon-reload aby przeładować konfigurację, a następnie sprawdź logi poleceniem sudo journalctl -u odoo -n 50. Więcej o procesie aktualizacji przeczytasz w artykule o tym, jak zaktualizować Odoo do nowszej wersji.
Podsumowanie
Uruchomienie Odoo jako usługi systemd to profesjonalne i niezawodne rozwiązanie dla środowisk produkcyjnych. Dzięki tej konfiguracji zyskujesz pełną kontrolę nad procesem Odoo, automatyczne uruchamianie po restarcie serwera oraz łatwe zarządzanie logami i monitoringiem. Pamiętaj o regularnym sprawdzaniu logów i aktualizowaniu systemu, aby zapewnić optymalną wydajność i bezpieczeństwo.
Potrzebujesz pomocy z konfiguracją Odoo?
Jeśli potrzebujesz profesjonalnej pomocy w konfiguracji Odoo jako usługi systemd lub w innych aspektach wdrożenia systemu ERP, zespół KK Innovations jest do Twojej dyspozycji. Oferujemy kompleksowe wsparcie techniczne, wdrożenia, szkolenia oraz dostosowanie Odoo do specyficznych potrzeb Twojej firmy. Skontaktuj się z nami, aby dowiedzieć się, jak możemy pomóc w optymalizacji Twojego środowiska Odoo!