Red Hat Enterprise Linux(RHELバージョン9.3)でUnixソケットを作成する方法に関する特定のガイドが見つからなかったため、以下を使用しました。ガイド。
作成後Gunicorn.socketそしてグルニコンサービスファイル入力 /etc/systemd/system/、走った
sudo systemctl start gunicorn.socket
しかし、問題が発生しました。
gunicorn.socket を起動できません。デバイス gunicorn.socket が見つかりません。
私はDebianでこのプロセスを試しましたが、ファイルを正常に作成してソケットを起動しました。
これまでRHELで試したことは次のとおりです。
- 所有権が変更されましたGunicorn.socket読み取りおよび書き込み権限を持つルートにファイルを送信します。
- gunicorn.socket ファイルを次に移動します。/etc/systemd/ユーザーディレクトリを見つけて同じコマンドを実行しましたが、運がありませんでした。
- システムを再起動してください
- 実行しようとしたら、デバイスを起動してくださいsudo systemctlデーモンの再ロードファイルが入っているとき/etc/systemd/システム目次(スクリーンショット参照)
- 他のものを作るテストソケットファイルを送信し、別の障害でデバイスを起動します(最後の2番目のスクリーンショットを参照)。
これは私のものです。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