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

2017-11-05 23:01:10 +08:00
 bb2018
#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 环境
5149 次点击
所在节点    Python
15 条回复
nanpuyue
2017-11-05 23:13:10 +08:00
虽然你这个方法很不清真……

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

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

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

果然这样就解决了。。

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

另外,楼主你最好不要用 rc.local,前面也有人说了,不清真。你可以用 supervisor,自己写一个 [program:aaaugi],自动开机执行
jingniao
2017-11-06 08:44:15 +08:00
目前已经习惯 supervisor,系统级 systemd 跟 service 不太熟练

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

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

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

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

© 2021 V2EX