분류 전체보기 1134

i3 손대보는 중

openbox 보다 편할거 같은데... minimal하면서도 마우스에 손 댈 일이 별로 없어보임. https://www.youtube.com/watch?v=j1I63wGcvU4&list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf 1. i3 설치 2. kde가 먼저 있었기 때문에 sddm으로 i3에 로그인하게 변경함. 3. 해상도가 이상함. xrandr --output HDMI-0 --mode 3840x1080 으로 해상도 세팅하고 autorandr --save monitor-only 로 해상도 저장. .config/i3/config: exec --no-startup-id nm-applet 라고 된 행 밑에다가 exec --no-startup-id /usr/bin/autorandr --..

Unix/Arch Linux 2024.03.12

typer, CLI 작성때 도움이 되는 라이브러리 (argparser, fire 등)

FastAPI 쓰는 사람이라면 pydantic이 좋다는 것을 알 것이다. 모르던 때로 돌아갈 수가 없다. config parsing, request parsing을 한 후 범위 체크라든지, type check이라든지 다 해주니까 이제 이거 없인 작업하기 힘들 정도이다. 이제 CLI쪽을 보면: argparser: 좋긴 한데 좀 낡은 느낌임. pydantic이 나온 시대엔 낡은 느낌이다. fire: 간편하게 cli tool 만들긴 좋은데 타이프 체크를 하지 않아서 아쉽다. FastAPI의 동생되는 라이브러리라고 공식 소개에 적혀있다. 더이상 설명이 필요 없을 듯. https://typer.tiangolo.com/ Typer Typer, build great CLIs. Easy to code. Based on..

카테고리 없음 2024.02.19

pm2로 cron task 만들기

cron으로 등록하면 로그가 잘 남지 않고 이메일로 출력이 오기 때문에 불편하다. cronicle같은 것을 써도 되는데 cronicle은 좀 보안이 나쁜 거 같음. worker만 따로 돌리는 개념은 없?고. airflow로 돌리기엔 그 정도까지 중요한 task는 또 아닌 경우 pm2를 쓸 수 있다. pm2 start 실행하고싶은거 --cron-restart="0 * * * *" --no-autorestart --namespace=cron 이 정도? --no-autostart 가 없으면 데몬이 아니라 실행되고 종료되는 task도 재실행 해야하는 것으로 생각해서 cron-restart로 지정한 값에 상관 없이 스크립트를 계속 실행하게 된다.

Unix 2024.01.26

pm2를 systemctl --user 로 실행하기

pm2가 다 좋은데 pm2 자체가 뻗어버리는 상황에서 되살아나지 않아서 pm2에 속한 서비스들이 통으로 다 죽을수도 있다는 약점이 있다. (ex 서버 메모리가 모자라서 여러 프로세스가 죽어버리는 상황. 연구작업이 이루어지는 서버에서는 일어날 수 있는 일이다.) 반면 systemctl은 매우 불편한데, systemd의 일부라서 out of memory 상황에서도 잘 살아남는다는 것! 두가지 옵션중에서 안정성 이슈 때문에 여러 서비스를 systemctl --user로 실행했는데 관리가 몹시 불편했다. 서비스 정의를 만드는 부분이나 로깅이 매우 불편했다. (아예 파일로 로깅하든지, journal로 로깅하든지, 로깅부분에 신경을 써서 wrapper script를 만들거나 프로그램 자체 로깅을 잘 쓰든지... 버..

Unix 2023.10.12

MongoDb migration 기록

상황: 서버 머신 한대가 자꾸 죽어서 더 안정적인 머신으로 데이터와 데몬 이전 작업 계획: 1. 서버A (old) 에서 서버B로 mongodump로 데이터 수동으로 복제 2. 이후 서버B를 서버A의 replica로 등록하면 데이터 싱크됨 3. 적절한 시점에 서버B를 primary로, 서버A를 secondary로 만들고 4. 서버A는 자연사 할 때 까지 굴리면서 read only replica로 사용 * 서버A에 접속 후 다이렉트로 mongodump -u --out=$HOME/mongo.d 시전 * 이러면 알아서 전에 덤프한다. * --db를 붙이라는 자료도 있는데 이러면 restore할 때 문제가 있었다. * 왜 문제인진 정확히 모르겠고, 서버A는 mongodb5, 서버B는 mongodb6이라 그랬던가?..

Unix/Ubuntu 2023.07.17

boost python numpy 컴파일해서 설치

Dead snakes로 python 3.10등을 설치할 수는 있지만, numpy는 제공되지 않아서 문제다. pip install numpy 로 넘파이를 쓸 수는 있는데, C++ 모듈을 짜서 numpy와 연동하는 부분은 linking이 되지 않을 것이다. ㄱ-;; ~/usr/venv-3.10 에 venv가 있고, numpy 모듈이 설치가 된 상태로 작업해야 한다. 그래야 부스트 컴파일러가 numpy가 있다고 감지를 해서 numpy 모듈도 빌드할 것이다. Python3.10에 boost_1_82_0.tar.bz2 기준이다. Instructions 1. boost 소스코드를 받아 압축을 푼다. 2. ./bootstrap.sh --with-python=$HOME/usr/venv-3.10/bin/python 3...

Unix/Ubuntu 2023.05.03