728x90
반응형

Airflow 테스트 환경을 만들고 서버를 종료했다고 생각했는데 다시 서버를 실행하려고 하니 다음과 같은 에러가 발생했다.

(airflow) ~/workspace/airflow $ airflow webserver --port 8080
  ____________       _____________
 ____    |__( )_________  __/__  /________      __
____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /
 _/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
Traceback (most recent call last):
  File "/Users/jaynam/workspace/airflow/airflow/bin/airflow", line 8, in <module>
    sys.exit(main())
  File "/Users/jaynam/workspace/airflow/airflow/lib/python3.8/site-packages/airflow/__main__.py", line 39, in main
    args.func(args)
  File "/Users/jaynam/workspace/airflow/airflow/lib/python3.8/site-packages/airflow/cli/cli_parser.py", line 52, in command
    return func(*args, **kwargs)
  File "/Users/jaynam/workspace/airflow/airflow/lib/python3.8/site-packages/airflow/utils/cli.py", line 103, in wrapper
    return f(*args, **kwargs)
  File "/Users/jaynam/workspace/airflow/airflow/lib/python3.8/site-packages/airflow/cli/commands/webserver_command.py", line 365, in webserver
    check_if_pidfile_process_is_running(pid_file=pid_file, process_name="webserver")
  File "/Users/jaynam/workspace/airflow/airflow/lib/python3.8/site-packages/airflow/utils/process_utils.py", line 317, in check_if_pidfile_process_is_running
    raise AirflowException(f"The {process_name} is already running under PID {pid}.")
airflow.exceptions.AirflowException: The webserver is already running under PID 13797.

 

이미 웹 서버가 실행중이라고 한다.
이 에러에 대해서 찾아보니 정상적으로 종료되지 않는 경우가 있다고 한다.

 

그래서 이런 경우에는 PID 를 통해 종료시켜줘야 한다.
아래와 같이 확인할 수 있다.

(airflow) ~/workspace/airflow $ lsof -i tcp:8080
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Python  13797 jaynam    5u  IPv4 0xcd66da8623960a07      0t0  TCP *:http-alt (LISTEN)
Python  21934 jaynam    5u  IPv4 0xcd66da8623960a07      0t0  TCP *:http-alt (LISTEN)
Python  21935 jaynam    5u  IPv4 0xcd66da8623960a07      0t0  TCP *:http-alt (LISTEN)
Python  21936 jaynam    5u  IPv4 0xcd66da8623960a07      0t0  TCP *:http-alt (LISTEN)
Python  21937 jaynam    5u  IPv4 0xcd66da8623960a07      0t0  TCP *:http-alt (LISTEN)

# PID 만 출력
(airflow) ~/workspace/airflow $ lsof -t -i :8080
13797
21934
21935
21936
21937

 

확인하고 나서 kill 해주면 된다.

kill -9 [PID]

# 한번에 종료
kill -9 $(lsof -t -i :8080)

 

종료한 후에 다시 웹 서버 실행해보기

(airflow) ~/workspace/airflow $ airflow webserver --port 8080
  ____________       _____________
 ____    |__( )_________  __/__  /________      __
____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /
 _/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
Running the Gunicorn Server with:
Workers: 4 sync
Host: 0.0.0.0:8080
Timeout: 120
Logfiles: - -
Access Logformat: 
=================================================================
[2022-11-18 18:49:25 +0900] [23595] [INFO] Starting gunicorn 20.1.0
[2022-11-18 18:49:25 +0900] [23595] [INFO] Listening at: http://0.0.0.0:8080 (23595)
[2022-11-18 18:49:25 +0900] [23595] [INFO] Using worker: sync
[2022-11-18 18:49:25 +0900] [23597] [INFO] Booting worker with pid: 23597
[2022-11-18 18:49:25 +0900] [23598] [INFO] Booting worker with pid: 23598
[2022-11-18 18:49:25 +0900] [23599] [INFO] Booting worker with pid: 23599
[2022-11-18 18:49:26 +0900] [23600] [INFO] Booting worker with pid: 23600

 

정상적으로 실행되는 것을 확인할 수 있다. 👍

728x90
반응형
복사했습니다!