我找不到在 Red Hat Enterprise Linux(RHEL 版本 9.3)中创建 unix 套接字的任何具体指南,所以我使用了这个指导。
创建后Gunicorn.socket和古尼康服务文件输入 /etc/systemd/系统/,我跑了
sudo systemctl start gunicorn.socket
但出现错误。
无法启动gunicorn.socket:未找到单元gunicorn.socket。
我在 Debian 上尝试了这个过程,成功创建了文件并启动了套接字。
这是我迄今为止在 RHEL 上尝试过的:
- 改变了所有权Gunicorn.socket文件到 root 并具有读写权限。
- 将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