python
August 5, 2023

Остановка процессов и завершение программы

'''
программа ожидает нажатия пробела, для завершения работы
'''
import multiprocessing
import os
import signal
#import sys
import keyboard

def main_process():
    # Основной процесс
    print("Основной процесс запущен")
    while True:
        # Ваш код основной логики здесь
        pass

def daemon_process():
    # Демон, ожидающий нажатия клавиши "пробел"
    print("Демон запущен")
    keyboard.wait("space")

    # Отправляем сигнал остановки основному процессу
    os.kill(os.getppid(), signal.SIGTERM)
    #sys.exit() #завершает только текущий процесс
if __name__ == "__main__":
    # Создаем первый демон
    p1 = multiprocessing.Process(target=main_process)
    p1.start()

    # Создаем второй демон
    p2 = multiprocessing.Process(target=daemon_process)
    p2.start()

    # Ожидаем завершения дочерних процессов
    p1.join()
    p2.join

Запускаем два процесса. Один ожидает нажатия клавиши "Пробел" для выключения программы.