求问, 我在脚本里起 uwsgi uwsgi.ini 服务, 结果 uwsgi 的父进程是脚本, 导致阻塞了脚本, 我想让脚本不受阻塞

2020-05-25 16:28:50 +08:00
 xiangyuhahah

www 4053 4046 3 16:06 ? 00:00:00 /opt/work/venv/bin/uwsgi xxxx 上面就是我出现的问题情况. 我起的 web 服务的父进程是脚本. 导致阻塞了脚本了.

1624 次点击
所在节点    程序员
11 条回复
xiangyuhahah
2020-05-25 16:31:40 +08:00
本身这个脚本就是一个子进程. 脚本中起的 web 服务变成脚本的子进程了. 我想 web 服务的父进程 PID 是 1. 怎么操作?
ruanimal
2020-05-25 18:14:13 +08:00
nohup ?
jimmyismagic
2020-05-25 18:17:49 +08:00
加个后台运行就好了 uwsgi.ini 里加一行
daemonize=uwsgi.log
xiangyuhahah
2020-05-25 18:28:31 +08:00
@jimmyismagic daemonize=uwsgi.log 已经用了. 没有解决问题
xiangyuhahah
2020-05-25 18:39:06 +08:00
最后是& 解决的问题
clino
2020-05-25 19:08:05 +08:00
我一般用 supervisor 管理 daemon
clino
2020-05-25 19:10:28 +08:00
脚本如果用 python,用 os.popen,可以做到不挂起
Sanko
2020-05-26 08:41:09 +08:00
一般我用 nohup xxx &
xiangyuhahah
2020-05-26 09:23:58 +08:00
@clino 我也和 leader 推荐过 supervisor, leader 不想用
julyclyde
2020-05-26 11:54:14 +08:00
所以说白了其实还是不应该在脚本里启动后台服务
应该把后台服务托管给 init/systemd
xiangyuhahah
2020-06-03 13:20:46 +08:00
@julyclyde 嗯嗯, 可以用 setsid 来做这件事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675294

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX