如何在 CentOs 中将 uWsgi 作为服务运行?

Uui*_*uid 4 python uwsgi

我很匆忙,我可以找到如何做到这一点,但我需要一些帮助来实现这一目标而不会浪费太多时间。目前,我在运行 uWsgi 实例和 ini 文件时所做的只是:

uwsgi --ini /home/myonlinesite/uwsgi.ini --pidfile /var/run/uwsgi_serv.pid
Run Code Online (Sandbox Code Playgroud)

然后停止:

uwsgi --stop  /var/run/uwsgi_serv.pid.
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我在 /etc/init.d/uwsgi 的 uwsgi init 文件中有此代码。因此,当我运行 /etc/init.d/uwsgi start 时,它会执行 ini 配置文件,而当我执行 /etc/init.d/uwsgi stop 时,它会停止 uwsgi 进程 ID。

问题是,当我启动 uWsgi 服务时,它会正常运行并记录每个 http 请求、任何调试打印等,但是当我关闭运行 Vps 的 Putty 时,它会杀死所有 uWsgi 进程并退出显示站点.

我不知道我是否只需要接触 pid 文件,或者我需要做什么才能让 uWsgi 进程执行并且我可以关闭 putty。

提前致谢。

小智 5

如果您在命令行中设置参数,请将标志添加-d file.log到您的命令中(-d代表 daemonize):

uwsgi --ini /home/myonlinesite/uwsgi.ini --pidfile /var/run/uwsgi_serv.pid -d file.log
Run Code Online (Sandbox Code Playgroud)

如果要在配置文件中设置参数,请在配置中添加以下行:

daemonize = /absolute/path/to/file.log
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,uWsgi 都将在后台运行并将所有内容记录在 file.log 中。鉴于这些选项,没有必要使用 nohup 等。