[Python] uwsgi 로 배포하고 우분투에서 systemd 로 관리하는 방법

systemd 와 연동해서 서비스를 구현하는 버릇을 들이다 보니 없으면 피곤하게 됐습니다. 그래서 python 과 uwsgi 와 systemd 를 연결해보자고 해서 시작했습니다.

1 Anaconda 설치하기

이거저거 써봤지만 저는 이게 제일 편한 virtualenv 관리자더군요.

$ wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
$ chmod +x Anaconda3-4.4.0-Linux-x86_64.sh
$ Anaconda3-4.4.0-Linux-x86_64.sh

다 설치하고 난 뒤 env 를 만들어 줍니다. app 정도 이름으로 합니다.

$ conda create -n app python=3.6
$ source activate app

2 uwsgi 용 스크립트 만들기

설명이 필요합니까? python 배포의 친구죠.

PROJECT_HOME = /home/[user-id]/[project-name] 이라고 하면 $PROJECT_HOME 에 app.ini 라고 만듭니다.

[user-id] 는 본인 아이디, [project-name] 은 파이선 프로젝트명입니다. 장고(django)를 가정합니다.

[uwsgi]
chdir=/home/[user-id]/[project-name]
module=[project-name].wsgi:application
socket=127.0.0.1:8900
buffer-size=65535
protocol=http
master=true
# daemonize=/home/[user-id]/uwsgi.log
pidfile=/home/[user-id]/uwsgi.pid
processes=1

이제 실행입니다.

$ cd $PROJECT_HOME
$ uwsgi app.ini

3 systemd 용 스크립트 만들기

  1. systemd 용 스크립트 만들기
    $ sudo emacs /lib/systemd/system/[project-name].service
    

    간단하게 프로젝트 이름으로 스크립트를 만들어줍니다. 내용은

    [Unit]
    Description=[project-name] appserver
    After=network.target
    
    [Service]
    User=[user-id]
    WorkingDirectory=/home/[user-id]/[project-name]
    Environment="MYSQL_HOST=127.0.0.1"
    Environment="MYSQL_NAME=[DB name]"
    Environment="MYSQL_USER=[DB user]"
    Environment="MYSQL_PWD=[DB password]"
    Environment="MYSQL_PORT=3306"
    Environment="REDIS_SERVER=127.0.0.1"
    Environment="LOG_LEVEL=DEBUG"
    Environment="IS_DEBUG=True"
    ExecStart=/bin/bash -c 'source /home/[user-id]/anaconda3/bin/activate \
    /home/[user-id]/anaconda3/envs/app/ \
    && /home/[user-id]/anaconda3/envs/app/bin/uwsgi \
    --ini /home/[user-id]/[project-name]/app.ini --die-on-term '
    KillSignal=SIGTERM
    Restart=on-failure
    Type=notify
    StandardError=syslog
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target
    

    Independent WEB 방식이라 환경 변수에 config 내용이 있으니 Environment 로 선언해줍니다. 각각에 자신의 정보를 채워넣으면 되고

    $ sudo systemctl daemon-reload
    $ sudo systemctl enable [project-name].service
    

    시작할때 자동으로 실행되게 등록하고

    $ sudo systemctl start aimserver.service
    $ sudo systemctl stop aimserver.service
    

    이제 시작하고 끄는것이 쉽게 가능해진다.

[scala] 스칼라 프로그래밍 도움 되는 사이트 2종

이번에 스칼라로 프로젝트를 진행하게 되서 급하게 공부하게 되었습니다. 도움이 되는 사이트 2종을 소개합니다. 



자바프로그래머를 위한 스칼라 튜토리얼


쉽게 스칼라의 기본중의 기본만 알게 해주는 훌륭한 페이지 입니다. 


스칼라 학교 


기초부터 중급까지 간단한 사이트까지 만들 수 있게 도와주는 사이트 입니다. 귀찮은 자바랑 같이 프로젝트 만드는 방법등 유용합니다. 추천 !



스칼라로 진행해본 결과는 스칼라로 사이트 만드는 건 좀.. 공부하는 건 모르는데 상용 사이트는 좀 에러가 있군요. 

[Python] Conda 에서 Matplotlib 을 사용할 때 팁

가상환경에서는 Matplotlib 이 제대로 동작하지 않기 때문에 OSX 환경에서 사용하는 팁이 존재한다. 


The default python provided in (Ana)Conda is not a framework build. However, the Conda developers have made it easy to install a framework build in both the main environment and in Conda envs. To use this install python.app conda install python.app and use pythonw rather than python


위와 같이 이용한다. 즉 python.app 을 conda 를 이용해서 설치하고 pythonw 이용해서 실행시키면 된다. 


미이라(2017)



  호러형 미션 임파서블 느낌으로 초중반 시작합니다. 탐형 영화 답게 스토리 진행이 아주 빠릅니다. 후반부 가면서 맥이 좀 풀리는 느낌입니다. 혹자는 다음 편하고 연계때문에 그렇다고 하는데 반지의 제왕 1편급 마무리는 아니지만 충분히 마무리가 덜 된 느낌입니다. 


  다음은 제가 영화에서 느낀 것입니다. 


  1. 호러풍 영화의 여주인공은 보통 엄청난 미녀가 나오는게 일반적이라고 합니다. 호불호가 꽤 갈릴 듯한 외모입니다. (이쪽 저쪽 둘다)

  2. 톰형 나이든게 팍팍 티가 납니다. 그럼에도 불구하고 몸은 진짜 열심히 관리 했더군요. 

  3. 대형 배우를 써서 돈이 없었다고 하던 소리를 들었습니다.미이라가 몸에 걸치고 다니는 붕대는 CG 가 아니라 타이즈 더군요. 어찌나 어색하던지..

  4. 지킬박사와 하이드가 나온다고 해서 살짝 다크 유니버스판 헐크를 기대했는데 옷도 안 찢어지는 얌전한 버젼(?) 이더군요

  5. 요즘 영화답게 마무리 액션씬이 영.. '쾅쾅 쪽' 입니다. 

  6. 마지막 클라이막스에 톰형이 하는 행동의 의미를 어떻게 알았는지 궁금합니다. 우디르급 태세전환이라 좀 당황함


  걍 톰형 영화라 가만히 있으면 시간이 잘 가는 효과는 확실합니다. 


  개인 토마토 지수는 66 입니다. 

  

  EDITED: 

   로튼 토마토 지수는 20 이군요 -ㅅ- 



원더 우먼

  영화를 볼 때 참조하는 사이트가 있습니다. 로튼 토마토 입니다. 




  최근 영화 볼 때 이 사이트 참조하면 실패가 없었습니다. 이 사이트에서 원더우먼은 무려 94% 입니다. '훌륭하다!! 드디어 디씨가 정신을 차렸구나.' 그래서 보러 갔습니다. 

  애매한 수치입니다. 볼만한 영화 이긴 하지만 94% 까지 되는 건 좀 무리 같습니다. 다크 나이트 이후 쓰레기 같던 디씨 의 영화중에서 그나마 괜찮은게 나와서 반사 이익을 누리는 거 같습니다. 


원더우먼 이미지 싱크로율이 아주 높습니다.



  물론 볼만합니다. 여 주인공이 이쁩니다. 본성과는 상관 없이 이쁩니다. 이쁘면 본성이 무슨 상관이 있겠습니까? 하지만 다음 번 영화를 볼지 말지 고민하게 할 정도는 되더군요. 


  다음은 제가 영화에서 느낀 것입니다. 


  1. 마을 전투씬이 제일 좋았습니다. 

  2. 최종 전투씬은 디씨의 고질병인 '가장 강한 빌런의 임팩트를 약하게 하기'가 다시 도진것 같습니다.

  3. 아! 수염! 수염! 수염! (보신 분은 아실것 입니다)

  4. 방패 쓰는 무술은 캡틴 아메리카에게 좀 배워야 할 것 같습니다. 생각보다 약하더군요. 

  5. 스토리 자체는 평이합니다. 

  6. 신들의 이름이 그리스 식인데 (제우스, 아레스), 주인공은 로마식이더군요. 아르테미스가 아니라 다이아나 


  투덜 거린 것만 있는거 같지만 영화는 재밌습니다. 두 번은 안 보겠지만. 


  개인 토마토 지수는 74 입니다.