import ctypes
import os
import platform
import signal
import sys

from app import App

# مدیریت پروسس والد فقط روی لینوکس
if platform.system() == "Linux":
    try:
        libc = ctypes.CDLL("libc.so.6")
        PR_SET_PDEATHSIG = 1
        libc.prctl(PR_SET_PDEATHSIG, signal.SIGKILL)

        # اگر پردازش والد (مثلاً سرویس دیمون یا اسکریپت اصلی) از بین رفته بود، خودکشی امن کند
        if os.getppid() == 1:
            os.kill(os.getpid(), signal.SIGKILL)
    except Exception as e:
        print(f"Warning: Linux process optimization failed: {e}", file=sys.stderr)

if __name__ == "__main__":
    app_instance = App()
    app_instance.run()