diff --git a/batch_ia/batch-fabnum.service b/batch_ia/batch-fabnum.service new file mode 100644 index 0000000..8960e71 --- /dev/null +++ b/batch_ia/batch-fabnum.service @@ -0,0 +1,31 @@ +[Unit] +Description=Service batch IA pour utilisateur fabnum +After=network.target + +[Service] +Type=simple +User=fabnum +WorkingDirectory=/home/fabnum/fabnum-public/batch_ia +Environment=PYTHONPATH=/home/fabnum/fabnum-public +ExecStart=/home/fabnum/fabnum-public/venv/bin/python /home/fabnum/fabnum-public/batch_ia/batch_runner.py +Restart=always +Nice=10 +CPUSchedulingPolicy=batch + +# Limites de ressources +CPUQuota=87.5% # ~14 cores sur 16 +MemoryMax=12G # RAM maximale autorisée +TasksMax=1 # maximum 1 subprocess/thread simultané + +# Sécurité renforcée +ProtectSystem=full +ReadWritePaths=/home/fabnum/fabnum-public/batch_ia + +# Journal propre +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target + +# semanage fcontext -a -t svirt_sandbox_file_t "/home/fabnum/fabnum-dev/batch_ia(/.*)?" diff --git a/batch_ia/batch_utils.py b/batch_ia/batch_utils.py index 730be61..09be3ea 100644 --- a/batch_ia/batch_utils.py +++ b/batch_ia/batch_utils.py @@ -3,6 +3,14 @@ import time from pathlib import Path from networkx.drawing.nx_agraph import write_dot import streamlit as st +import sys +import os + +current_file = os.path.realpath(__file__) +parent_dir = os.path.abspath(os.path.join(os.path.dirname(current_file), '..')) +if parent_dir not in sys.path: + sys.path.insert(0, parent_dir) + from utils.translations import _ BATCH_DIR = Path(__file__).resolve().parent diff --git a/utils/__init__.py b/utils/__init__.py new file mode 100644 index 0000000..e69de29