django在linux上运行,一般在xshell远程连接后,是通过如下命令启动服务:
python manage.py runserver 0.0.0.0:8000
但是这样有个弊端,窗口关闭服务就停止了,如何做到窗口关闭服务不停止呢?那就是后台启动!!!
而nohup可以实现django项目启动的时候挂后台运行,保证窗口关闭不影响服务运行。
具体操作如下:
步骤1:cd切换到django的manage.py目录,启动之前先杀掉之前的django manage.py方式运行进程。方法参考linux如何停止后台运行的Django项目https://blog.csdn.net/qq_36564503/article/details/122628691步骤2:接着使用nohup启动进程,可以指定日志输出到djo.out,如果不指定默认是在nohup.out。指定日志路径后面加上
2>&1 &
[root@yoyo django2]# nohup python manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 &
[1] 21616
[root@yoyo django2]# tail -f djo.out
nohup: ignoring input
[25/Mar/2019 14:36:31] "GET / HTTP/1.1" 200 24
[25/Mar/2019 14:36:37] "GET / HTTP/1.1" 200 24
[25/Mar/2019 14:36:38] "GET / HTTP/1.1" 200 24
[25/Mar/2019 14:36:39] "GET / HTTP/1.1" 200 24
查看实时日志可以用tail -f djo.out
start.sh和stop.sh
接着可以在manage.py目录下一个start.sh文件启动django,再写个stop.sh停掉django服务。
使用vim start.sh编辑以下2行,编辑完成后Esc退出,输入:wq
保存退出
[root@yoyo django2]# vim start.sh
ps -aux | grep python|xargs kill -9
nohup python manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 &
继续使用vim start.sh编辑,编辑完成后Esc退出,输入:wq
保存退出
ps -aux | grep python|xargs kill -9
编辑完成之后,授权这2个文件
[root@yoyo django2]# chmod +777 start.sh
[root@yoyo django2]# chmod +777 stop.sh
启动django
启动服务执行./start.sh
,关闭服务执行./stop.sh
启动完成后,在浏览器输入地址,然后执行tail -f djo.out
可以看到实时日志