Ajout de l'option service avec systemd-run

This commit is contained in:
lionel 2025-05-15 12:22:00 +02:00
parent b56fdf48b8
commit b6af19377a

View File

@ -68,6 +68,26 @@ def lever_inhibit_arret(inhibiteurs):
session_manager = session_bus.get("org.gnome.SessionManager", "/org/gnome/SessionManager")
session_manager.Uninhibit(inhibiteur)
def relancer_avec_systemd():
# Constitue la commande avec systemd-run
cmd = [
"systemd-run",
"--unit=handbrake_recursive",
"--user",
"--description=Encodage vidéo",
f'--working-directory={os.getcwd()}',
"--",
sys.argv[0]
]
# Ajoute les arguments sauf --service et --pager (journalctl utilise déjà un pager)
cmd += [arg for arg in sys.argv[1:] if arg not in ("--service", "--pager")]
print(f"Lancement du script via systemd:\n{' '.join(cmd)}")
print(f"Pour suivre l'exécution du programme:\n journalctl --user -f -u handbrake_recursive")
# Remplace le processus courant
os.execvp(cmd[0], cmd)
# Définir la largeur de chaque colonne à environ 3 cm (approximativement 10.5 unités)
def set_column_width(ws, column_range, width=15):
@ -410,8 +430,13 @@ def main():
parser.add_argument('-o', '--output_directory', required=True, help='Dossier de sortie pour les fichiers traités')
parser.add_argument('--dry-run', action='store_true', help='Simule les actions sans modifier les fichiers')
parser.add_argument('--pager', action='store_true', help='Utilise less pour paginer le résumé final')
parser.add_argument("--service", action="store_true", help="Lancer via systemd-run")
args = parser.parse_args()
if args.service:
if "INVOCATION_ID" not in os.environ:
relancer_avec_systemd()
# Récupération des arguments
preset_file = args.preset
input_directory = args.input_directory