Python中为什么这样写Linux开机自启动脚本?uwsgi.ini可以自启动,但下面这行就不行呢?
#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 环境
Python中为什么这样写Linux开机自启动脚本?uwsgi.ini可以自启动,但下面这行就不行呢?
虽然你这个方法很不清真……
但是,试试在 aaa_uwsgi.ini 后面加&,aa_uwsgi.ini 和&用空格隔开。
我无法理解你的问题
aaa_uwsgi.ini
ddd_uwsgi.ini
不在同一个目录~
用 supervisor 不好么?
应该是没有用 -d 使第一个在后台运行,自然就走不下去了。
第一个注释掉第二个能执行么?
cd /var/wwwroot/html/aaa && /usr/local/bin/uwsgi --ini aaa_uwsgi.ini -d
这样? 才会执行下面的句子?
刚试了一下。第一个注释掉第二个能执行!!
uwsgi 有一个 -d 选项是指定用 daemonize 模式执行,或者在 ini 里面配 daemonize。如果不是 daemonize,第一个 uwsgi 执行后仍然在前台,不会继续执行后面的命令。
/usr/local/subversion/bin/svnserve -d
这一行我去掉了。还是不行。
不知道再要怎么改?
检查 ini 里面有没有
daemonize = /xxx/yyy.log
这样的配置,如果没有就加上一行,后面那个是日志路径。
果然这样就解决了。。
谢谢谢~
如果是比较新的 linux 建议你用 systemd 管理服务,比 rc.local 这种好很多
我记得 uwsgi 装上就有一个 service 服务了,直接在 /etc/uwsgi 里面写配置就可以的。
这种方法。。。不是很清真
楼主,这命令是下一行要等待上一行执行完毕,你最后的两行,因为最后一行要等待上一行结束,所以就一直执行不了(因为你上一行处于执行中,前台)。所以你在 rc.local 里自己的命令要用 & 结尾。前面有人说 && ,这个也不准确,&& 的意思是必须前一条执行正确(注意,是正确,没有错误),并且执行结束,才执行后者。
另外,楼主你最好不要用 rc.local,前面也有人说了,不清真。你可以用 supervisor,自己写一个 [program:aaaugi],自动开机执行
目前已经习惯 supervisor,系统级 systemd 跟 service 不太熟练

