[python] 윈도우 서비스 관리

2016년 10월 5일 수요일

파이썬 연습.

win32serviceutil를 이용해서 윈도우 서비스를 관리.

우선 pywin32를 설치해야한다.

https://sourceforge.net/projects/pywin32/

아래예제는 'NetHelper Client V7.0 Main Service' 라는 서비스를 시작/중지하는 소스이다.

python 소스

try:
    import winxpgui as win32gui
except ImportError:
    import win32gui
import win32serviceutil

if __name__ == '__main__':
    service_name = 'NetHelper Client V7.0 Main Service'

    def message_box(hwnd, message, caption = 'message'):
        win32gui.MessageBox(hwnd, message, caption, win32con.MB_ICONEXCLAMATION | win32con.MB_OK)

    def stop_service(sysTrayIcon):
        try:
            win32serviceutil.StopService(service_name)
            print '{} stopped'.format(service_name)
        except:
            print 'could not stop service {}'.format(service_name)
        message_box(sysTrayIcon.hwnd, 'NelHelper 서비스가 중지되었습니다')

    def start_service(sysTrayIcon):
        try:
            win32serviceutil.StartService(service_name)
            print '{} start'.format(service_name)
        except:
            print 'could not start service {}'.format(service_name)
        message_box(sysTrayIcon.hwnd, 'NelHelper 서비스가 시작되었습니다')