From 11199635fdc3f54672c1ea1ab5f0ee7de4daef73 Mon Sep 17 00:00:00 2001 From: grayhook Date: Sun, 24 Aug 2025 15:11:04 +0700 Subject: [PATCH] fup shell --- main.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 9624d43..ce689df 100755 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -#!/bin/bash +#/usr/bin/python3 import os import sys @@ -9,6 +9,7 @@ import configparser import multiprocessing CONFIG_FILE = "/etc/butler.ini" +SHELL_EXECUTABLE = '/bin/bash' # Гарантируем использование bash # --- Функции, выполняющие действия --- @@ -21,14 +22,13 @@ def are_users_there(check_cmd, service_name): try: # shell=True позволяет использовать пайпы (|) и другие возможности shell # check=True бросит исключение CalledProcessError при ненулевом коде возврата - print(f"[{service_name}] run {check_cmd}.", flush=True) subprocess.run( check_cmd, shell=True, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, - executable='/bin/bash' + executable=SHELL_EXECUTABLE # Явно указываем bash ) return True except (subprocess.CalledProcessError, FileNotFoundError): @@ -38,12 +38,12 @@ def are_users_there(check_cmd, service_name): def server_shutdown(stop_cmd, service_name): print(f"[{service_name}] Stopping server...", flush=True) - subprocess.run(stop_cmd, shell=True) + subprocess.run(stop_cmd, shell=True, executable=SHELL_EXECUTABLE) print(f"[{service_name}] Stop command sent.", flush=True) def server_startup(start_cmd, service_name): print(f"[{service_name}] Starting server...", flush=True) - subprocess.run(start_cmd, shell=True) + subprocess.run(start_cmd, shell=True, executable=SHELL_EXECUTABLE) print(f"[{service_name}] Start command sent.", flush=True) def wait_client(host, port, service_name):