.env 설정;서버재시작시; [Errno 98] Address already in use
본문
질문 ------1 ----
## Database configs
#DB_DRIVER 는 각 DBMS의 파이썬 드라이버이름입니다.
# e.g.) mysql 사용시 mysql , pymysql
DB_TABLE_PREFIX = "g6_"
DB_ENGINE = "?"
. . .
MariaDB(MySQL)를 사용, 그누보드6의 환경변수(.env) 설정; DB_ENGINE = "?" 값은 어떻게 설정하는 지 -
고수님의 조언을 부탁 드립니다.
>>>>
>>> 해소 됌 <<<
. . .
질문 ------2 ----
.env 설정 후 , 서버 재시작은 ?? - 명령어(리눅스 쉘)는 ??
아파치 서버와 같이 사용 중입니다.
(venv) root@HumanpcNAS:/mnt/VOL1/base2# uvicorn main:app --reload --host 0.0.0.0 --port 66
INFO: Will watch for changes in these directories: ['/mnt/VOL1/base2']
ERROR: [Errno 98] Address already in use
(venv) root@HumanpcNAS:/mnt/VOL1/base2#
- - -
주소가 사용 중이라는 에러가 발생합니다
- - -
(venv) root@HumanpcNAS:/mnt/VOL1/base2# deactivate
root@HumanpcNAS:/mnt/VOL1/base2#
- - -
해결방안 찾음 = = =
Web framework, Flask에서 port 66을 사용하고 있어서 발생하는 에러로 보임
>>> flask가 생성한 process를 kill 하기위해. PID를 확인하기 위해서 lsof (list open files) 명령어 로 열려져 있는 socket 파일들 확인 한다.
- - -
root@HumanpcNAS:/mnt/VOL1/base2# lsof -i :66 // flask 가 생성한 pip를 확인한다.
python3 14236 kibua 4u IPv4 82012 0t0 TCP localhost:66 (LISTEN)
root@HumanpcNAS:/mnt/VOL1/base2# kill -9 14236 // kill -SIGKILL(-9) 을 PID에 전달 process kill
.- - -
root@HumanpcNAS:/mnt/VOL1/base2# python3 -m venv venv
root@HumanpcNAS:/mnt/VOL1/base2# source venv/bin/activate
(venv) root@HumanpcNAS:/mnt/VOL1/base2# pip3 install -r requirements.txt
.
.
.
(venv) root@HumanpcNAS:/mnt/VOL1/base2# uvicorn main:app --reload --host 0.0.0.0 --port 66
INFO: Will watch for changes in these directories: ['/mnt/VOL1/base2']
INFO: Uvicorn running on http://0.0.0.0:66 (Press CTRL+C to quit)
INFO: Started reloader process [295666] using StatReload
INFO: Started server process [295668]
INFO: Waiting for application startup.
INFO: Application startup complete.
. - - -
uvicorn 서버 재시작이 참 ~ 어렵다 ; 초보에겐 ㅠ ㅠ
- - -
답변 1
start.sh
cd /mnt/VOL1/base2
sudo -H -u root bash -c 'echo "pw" | sudo -S python -m venv venv && source venv/bin/activate'
source venv/bin/activate
pip install -r requirements.txt
sudo uvicorn main:app --reload --host 0.0.0.0 --port 66 &
저는 이 파일을 동작시킵니다.
!-->