前言
django在linux上运行,一般在xshell远程连接后,是通过python manage.py runserver 0.0.0.0:8000启动服务。但是这样有个弊端,窗口关闭服务就停止了。 nohup可以启动的时候挂后台运行
nohup后台运行
cd到django的manage.py目录,启动之前先杀掉进程
1[root@yoyo ~]# cd /usr/local/django2/ 2[root@yoyo django2]# ps -aux | grep python|xargs kill -9 3kill: cannot find process "root" 4kill: sending signal to 21029 failed: No such process 5kill: cannot find process "0.0" 6kill: cannot find process "0.0" 7kill: sending signal to 112660 failed: No such process 8kill: sending signal to 968 failed: No such process 9kill: cannot find process "pts/2" 10kill: cannot find process "S+" 11kill: cannot find process "14:32" 12kill: cannot find process "0:00" 13kill: cannot find process "grep" 14kill: cannot find process "--color=auto" 15kill: cannot find process "python" 16[root@yoyo django2]#
接着使用nohup启动进程,可以指定日志输出到djo.out,如果不指定默认是在nohup.out。指定日志路径后面加上2>&1 &
1[root@yoyo django2]# nohup python manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 & 2[1] 21616 3[root@yoyo django2]# tail -f djo.out 4nohup: ignoring input 5[25/Mar/2019 14:36:31] "GET / HTTP/1.1" 200 24 6[25/Mar/2019 14:36:37] "GET / HTTP/1.1" 200 24 7[25/Mar/2019 14:36:38] "GET / HTTP/1.1" 200 24 8[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保存退出
1[root@yoyo django2]# vim start.sh 2 3ps -aux | grep python|xargs kill -9 4nohup python manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 & 5
继续使用vim start.sh编辑,编辑完成后Esc退出,输入:wq保存退出
1ps -aux | grep python|xargs kill -9 2
编辑完成之后,授权这2个文件
1[root@yoyo django2]# chmod +777 start.sh 2 3[root@yoyo django2]# chmod +777 stop.sh
启动django
启动服务执行./start.sh,关闭服务执行./stop.sh

启动完成后,在浏览器输入地址,然后执行tail -f djo.out可以看到实时日志