如何重新启动 systemd 套接字?

如何重新启动 systemd 套接字?

问题简而言之:systemd 在启动时创建一个套接字,但如果不重新启动就无法重新启动或重新创建它。

/etc/systemd/system/gunicorn.socket

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

重启后,/run/gunicorn.sock 存在,我可以用 连接到它sudo gunicorn3 --bind unix:/run/gunicorn.sock test.wsgi。但是用 Ctrl+C 关闭该进程后,套接字消失,无法通过 重新创建sudo systemctl start gunicorn.socket。顺便说一句,sudo systemctl status gunicorn.socket仍然显示套接字处于活动状态并且正常。

是不是出了什么问题或者我的期望不对(我对 systemd 还不是很熟悉)?

附加问题:我尝试通过在配置文件的 [Socket] 节中添加“User=www-data”来使套接字归 www-data 用户所有,但套接字仍然归 root.root 所有。我的错误在哪里?

相关内容