본문 바로가기

카테고리 없음

[Ubuntu] setproctitle이 동작하지 않을 때.

윈도우 환경은 잘 모르겠지만

우분투에서 파이썬 프로젝트를 실행한 뒤 터미널에서 동작중인 프로세스를 조회해보면

프로그램 명이 python 또는 python3으로 표시된다.

 

여러개의 파이썬 프로젝트가 구동되거나 실행중인 프로세스가 많은 경우 한눈에 알아보기가 쉽지않다.

 

이 때, setproctitle 을 이용하면 프로그램명을 내가 원하는 것으로 설정 가능하다.

 

터미널에서 pip install setproctitle 명령어로 간단히 설치할 수 있다.

 

사용법은 파이썬 프로젝트에서 

from setproctitle import * 으로 import하고

코드 단에서 setproctitle('Your_Name') 형식으로 사용하면 된다.

아주 간편하다!

 

 

그런데 이번 신규 프로젝트에서 마무리 단계에서 setproctitle이 정상 동작하지 않아 잠깐 헤맸다.

 

A라는 프로그램을 실행하는 스크립트가 있고

B라는 프로그램을 실행하는 스크립트가 있다.

 

Crontab을 이용해 매 1분마다 두개의 스크립트를 모두 실행한다.

스크립트는 프로그램이 동작중이면 아무런 행동을 하지 않고 동작중이 아니면 프로그램을 실행하는 단순한 스크립트이다.

 

그런데 분명히 프로그램이 실행중인데도 1분이 경과하면 같은 프로그램을 재실행했다.

크론탭도 문제 없고, 스크립트도 문제가 없었는데,,,,,

 

원인을 알아보니 setproctitle에 설정한 이름이 일정 길이를 넘어가면 짤린다는 것.

 

 

A와 B 프로그램이 모두 동작중일때 ps -e --sort comm으로 실행중인 모든 프로세스를 조회해보니

설정한 이름의 끝부분이 잘려있었다.

그래서 스크립트에서 걸러내지 못하고 실행 중인 프로그램을 계속 실행한 것.

 

길이는 15바이트가 넘어갈 경우 자르는 것 같았다. 15글자 이상으로 넣을 경우 뒷자리가 짤림.