Вы должны войти, чтобы создавать сообщения и темы.

Программа не выполняет свои функции.

Здравствуйте. Около месяца назад писал программу для "Перевоспитания" vmware . Сейчас есть потребность сделать подобное с PostgreSQL 15 и DBeaver.
Я сделал такой же проект, но почему-то программа не выполняет свои функции от слова совсем. Не запускает службы и процессы, а так же работает, когда отсутствует процесс DBeaver, отсутствие которого должно говорить программе, что пора глушить службы и процессы. Честно говоря, сам понять не могу, из-за чего такое происходит. Прикладываю код и прошу помочь разобраться в данной проблеме. Заранее спасибо.

Код
Скопировано

using System;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DataBase_Laucnher
{
    public partial class DataBase_Launcher : Form
    {
        public DataBase_Launcher()
        {
            InitializeComponent();
        }

        async void LauncherForm_Load(object sender, EventArgs e)
        {
            // Список служб для управления ими
            string[] services = { "postgresql-x64-15" };

            // Перевод служб в режим "Автоматически"
            foreach (var service in services)
            {
                cmd($"sc config \"{service}\" start= auto");
            }

            // Запуск служб PostgreSQL
            foreach (var service in services)
            {
                cmd($"sc start \"{service}\"");
            }

            // Запуск необходимых процессов
            cmd("start \"\" \"C:\\Program Files\\PostgreSQL\\15\\bin\\pg_ctl.exe\"");
            cmd("start \"\" \"C:\\Program Files\\PostgreSQL\\15\\bin\\postgres.exe\"");
            cmd("start \"\" \"C:\\Program Files\\DBeaver\\dbeaver.exe\"");

            // Ожидание закрытия DBeaver и PostgreSQL
            while (Process.GetProcessesByName("DBeaver Community").Length > 0 )
            {
                await Task.Delay(5000); // Проверка каждые 5 секунд
            }

            // Остановка служб
            foreach (var service in services)
            {
                cmd($"sc stop \"{service}\"");
            }

            // Перевод служб в режим "отключено"
            foreach (var service in services)
            {
                cmd($"sc config \"{service}\" start= disabled");
            }

            // Завершение всех процессов DBeaver и PostgreSQL
            cmd("taskkill /f /im postgres.exe & taskkill /f /im pg_ctl.exe & taskkill /f /im dbeaver.exe");

            // Завершение текущего процесса (лаунчера)
            Application.Exit();
        }

        void cmd(string line)
        {
            ProcessStartInfo processInfo = new ProcessStartInfo
            {
                FileName = "cmd.exe",
                Arguments = $"/c {line}",
                WindowStyle = ProcessWindowStyle.Hidden,
                CreateNoWindow = true, // Скрыть окно
                UseShellExecute = false // Не использовать оболочку
            };

            using (Process process = Process.Start(processInfo))
            {
                process.WaitForExit();  // Ожидание завершения команды
            }
        }
    }
}

Скопировано