SeouliteLab

파이썬 데몬 프로세스 관리하기: python-daemon 라이브러리 활용하기 본문

카테고리 없음

파이썬 데몬 프로세스 관리하기: python-daemon 라이브러리 활용하기

Seoulite Lab 2024. 4. 18. 08:25

python-daemon은 파이썬에서 데몬 프로세스를 생성하고 관리하는 데 사용되는 라이브러리입니다. 데몬 프로세스는 백그라운드에서 동작하며 주로 시스템 서비스나 백그라운드 작업을 수행하는 프로세스입니다. 이번에는 python-daemon 라이브러리를 사용하여 파이썬에서 데몬 프로세스를 만들고 관리하는 방법에 대해 알아보겠습니다.

예제 1: 간단한 데몬 프로세스 만들기

import daemon

def run():
    while True:
        # 데몬 프로세스가 실행할 작업 수행
        pass

# 데몬 컨텍스트 생성
with daemon.DaemonContext():
    run()

위 예제는 python-daemon을 사용하여 간단한 데몬 프로세스를 만드는 방법을 보여줍니다. DaemonContext를 사용하여 데몬 프로세스의 컨텍스트를 설정하고, run() 함수를 무한 루프로 실행하여 데몬이 동작하도록 합니다.

예제 2: 로그 파일 작성하기

import daemon

def run():
    with open('daemon.log', 'w') as f:
        while True:
            # 데몬 프로세스가 실행할 작업 수행
            f.write("데몬 프로세스 동작 중...\n")

with daemon.DaemonContext(stdout=open('daemon.log', 'w+')):
    run()

이 예제는 python-daemon을 사용하여 로그 파일을 작성하는 방법을 보여줍니다. stdout을 로그 파일에 연결하여 데몬 프로세스의 출력을 파일에 기록합니다.

예제 3: 데몬 프로세스 종료 시그널 처리하기

import daemon
import signal
import sys

def run():
    signal.signal(signal.SIGTERM, signal_handler)
    while True:
        pass

def signal_handler(signal, frame):
    print('데몬 프로세스 종료됨')
    sys.exit(0)

with daemon.DaemonContext():
    run()

위 예제는 python-daemon을 사용하여 데몬 프로세스가 종료될 때 시그널을 처리하는 방법을 보여줍니다. signal.signal() 함수를 사용하여 SIGTERM 시그널을 처리하고, 시그널 핸들러에서 프로세스 종료 로직을 정의합니다.

python-daemon을 사용하면 파이썬으로 간단하고 안정적인 데몬 프로세스를 만들 수 있습니다.