V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuhahah
V2EX  ›  程序员

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

  •  
  •   xiangyuhahah · 2020-05-25 16:28:50 +08:00 · 1622 次点击
    这是一个创建于 1637 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    11 条回复    2020-06-03 13:20:46 +08:00
    xiangyuhahah
        1
    xiangyuhahah  
    OP
       2020-05-25 16:31:40 +08:00
    本身这个脚本就是一个子进程. 脚本中起的 web 服务变成脚本的子进程了. 我想 web 服务的父进程 PID 是 1. 怎么操作?
    ruanimal
        2
    ruanimal  
       2020-05-25 18:14:13 +08:00
    nohup ?
    jimmyismagic
        3
    jimmyismagic  
       2020-05-25 18:17:49 +08:00
    加个后台运行就好了 uwsgi.ini 里加一行
    daemonize=uwsgi.log
    xiangyuhahah
        4
    xiangyuhahah  
    OP
       2020-05-25 18:28:31 +08:00
    @jimmyismagic daemonize=uwsgi.log 已经用了. 没有解决问题
    xiangyuhahah
        5
    xiangyuhahah  
    OP
       2020-05-25 18:39:06 +08:00
    最后是& 解决的问题
    clino
        6
    clino  
       2020-05-25 19:08:05 +08:00 via Android
    我一般用 supervisor 管理 daemon
    clino
        7
    clino  
       2020-05-25 19:10:28 +08:00 via Android
    脚本如果用 python,用 os.popen,可以做到不挂起
    Sanko
        8
    Sanko  
       2020-05-26 08:41:09 +08:00 via Android
    一般我用 nohup xxx &
    xiangyuhahah
        9
    xiangyuhahah  
    OP
       2020-05-26 09:23:58 +08:00
    @clino 我也和 leader 推荐过 supervisor, leader 不想用
    julyclyde
        10
    julyclyde  
       2020-05-26 11:54:14 +08:00
    所以说白了其实还是不应该在脚本里启动后台服务
    应该把后台服务托管给 init/systemd
    xiangyuhahah
        11
    xiangyuhahah  
    OP
       2020-06-03 13:20:46 +08:00
    @julyclyde 嗯嗯, 可以用 setsid 来做这件事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:06 · PVG 13:06 · LAX 21:06 · JFK 00:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.