Red Hat Enterprise Linux(RHEL 버전 9.3)에서 Unix 소켓을 생성하는 방법에 대한 특정 가이드를 찾을 수 없어서 다음을 사용했습니다.가이드.
생성 후Gunicorn.socket그리고구르니콘 서비스파일 입력 /etc/systemd/system/, 나는 달렸다
sudo systemctl start gunicorn.socket
하지만 문제가 발생했습니다.
gunicorn.socket을 시작할 수 없습니다. 장치 gunicorn.socket을 찾을 수 없습니다.
나는 데비안에서 이 프로세스를 시도했고 성공적으로 파일을 생성하고 소켓을 시작했습니다.
지금까지 RHEL에서 시도한 내용은 다음과 같습니다.
- 소유권이 변경됨Gunicorn.socket읽기 및 쓰기 권한이 있는 루트에 파일을 보냅니다.
- gunicorn.socket 파일을 다음으로 이동합니다./etc/systemd/사용자디렉토리를 찾아 동일한 명령을 실행했지만 운이 없었습니다.
- 시스템을 다시 시작하세요
- 실행을 시도한 후 장치를 시작하십시오sudo systemctl 데몬 다시 로드파일이 들어있을 때/etc/systemd/시스템목차(스크린샷 참조)
- 다른 것을 만들어 보세요테스트 소켓파일을 제출하고 다른 결함으로 장치를 부팅합니다(끝 부분의 두 번째 스크린샷 참조).
이 내 꺼야Gunicorn.socket문서:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
그리고 내구르니콘 서비스문서:
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=ec2-user
Group=www-data
WorkingDirectory=/home/ec2-user/product-catalog
ExecStart=/home/ec2-user/product-catalog/venv/bin/gunicorn \
--access-logfile - \
-k uvicorn.workers.UvicornWorker \
--workers 3 \
--bind unix:/run/gunicorn.sock \
app:app
[Install]
WantedBy=multi-user.target
그리고테스트 소켓문서:
[Unit]
Description=test socket
[Socket]
ListenStream=/run/test.sock
[Install]
WantedBy=sockets.target