为什么这样写 Linux 开机自启动。上面的 uwsgi.ini 可以自启动。下面的这一行就不行呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bb2018
V2EX    Python

为什么这样写 Linux 开机自启动。上面的 uwsgi.ini 可以自启动。下面的这一行就不行呢?

  •  
  •   bb2018 2017-11-05 23:01:10 +08:00 5413 次点击
    这是一个创建于 2926 天前的主题,其中的信息可能已经有所发展或是发生改变。
    #vi /etc/rc.d/rc.local

    加入如下启动命令:
    /etc/rc.d/init.d/mysqld start
    /etc/init.d/nginx start
    /usr/local/subversion/bin/svnserve -d



    #开机自启动 uwsgi
    cd /var/wwwroot/html/aaa && /usr/local/bin/uwsgi --ini aaa_uwsgi.ini
    cd /var/wwwroot/html/ddd && /usr/local/bin/uwsgi --ini ddd_uwsgi.ini

    上面两行。aaa_uwsgi.ini 可以重启自启动。
    下面的 ddd_uwsgi.ini 就不行。重启后。还需要进目录手动启动。这个怎么回事?

    有什么办法让所有的 uwsgi.ini 都可以自启动。


    python django uwsgi 环境
    15 条回复    2017-11-06 08:44:15 +08:00
    nanpuyue
        1
    nanpuyue  
       2017-11-05 23:13:10 +08:00 via iPhone
    虽然你这个方法很不清真……

    但是,试试在 aaa_uwsgi.ini 后面加&,aa_uwsgi.ini 和&用空格隔开。
    bb2018
        2
    bb2018  
    OP
       2017-11-05 23:16:58 +08:00
    @nanpuyue
    aaa_uwsgi.ini
    ddd_uwsgi.ini
    不在同一个目录~
    wdlth
        3
    wdlth  
       2017-11-05 23:30:56 +08:00 via Android
    用 supervisor 不好么?
    wdlth
        4
    wdlth  
       2017-11-05 23:34:54 +08:00 via Android
    应该是没有用 -d 使第一个在后台运行,自然就走不下去了。
    cappuccinos
        5
    cappuccinos  
       2017-11-05 23:37:42 +08:00 via iPhone
    第一个注释掉第二个能执行么?
    bb2018
        6
    bb2018  
    OP
       2017-11-05 23:38:10 +08:00
    @wdlth
    cd /var/wwwroot/html/aaa && /usr/local/bin/uwsgi --ini aaa_uwsgi.ini -d

    这样? 才会执行下面的句子?
    bb2018
        7
    bb2018  
    OP
       2017-11-05 23:45:20 +08:00
    @cappuccinos

    刚试了一下。第一个注释掉第二个能执行!!
    wdlth
        8
    wdlth  
       2017-11-05 23:52:47 +08:00 via Android
    @bb2018 uwsgi 有一个 -d 选项是指定用 daemonize 模式执行,或者在 ini 里面配 daemonize。如果不是 daemonize,第一个 uwsgi 执行后仍然在前台,不会继续执行后面的命令。
    bb2018
        9
    bb2018  
    OP
       2017-11-05 23:55:17 +08:00
    @wdlth
    /usr/local/subversion/bin/svnserve -d
    这一行我去掉了。还是不行。
    不知道再要怎么改?
    wdlth
        10
    wdlth  
       2017-11-06 00:03:53 +08:00 via Android
    @bb2018 检查 ini 里面有没有
    daemOnize= /xxx/yyy.log
    这样的配置,如果没有就加上一行,后面那个是日志路径。
    bb2018
        11
    bb2018  
    OP
       2017-11-06 00:15:01 +08:00
    @wdlth

    果然这样就解决了。。

    谢谢谢~
    wwqgtxx
        12
    wwqgtxx  
       2017-11-06 00:17:21 +08:00 via iPhone
    如果是比较新的 linux 建议你用 systemd 管理服务,比 rc.local 这种好很多
    FullBridgeRect
        13
    FullBridgeRect  
       2017-11-06 00:53:27 +08:00 via Android
    我记得 uwsgi 装上就有一个 service 服务了,直接在 /etc/uwsgi 里面写配置就可以的。
    这种方法。。。不是很清真
    bao3
        14
    bao3  
       2017-11-06 00:58:24 +08:00
    楼主,这命令是下一行要等待上一行执行完毕,你最后的两行,因为最后一行要等待上一行结束,所以就一直执行不了(因为你上一行处于执行中,前台)。所以你在 rc.local 里自己的命令要用 & 结尾。前面有人说 && ,这个也不准确,&& 的意思是必须前一条执行正确(注意,是正确,没有错误),并且执行结束,才执行后者。

    另外,楼主你最好不要用 rc.local,前面也有人说了,不清真。你可以用 supervisor,自己写一个 [program:aaaugi],自动开机执行
    jingniao
        15
    jingniao  
       2017-11-06 08:44:15 +08:00 via Android
    目前已经习惯 supervisor,系统级 systemd 跟 service 不太熟练
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3324 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 11:07 PVG 19:07 LAX 03:07 JFK 06:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86