在屏幕内重新启动django runserver的Shell脚本

在屏幕内重新启动django runserver的Shell脚本,django,bash,shell,gnu-screen,Django,Bash,Shell,Gnu Screen,如何使用shell脚本重新启动django runserver?我在屏幕内运行了django服务器 这是我的shell脚本restartpython.sh: killall -9 python screen -r sleep 5 exec python manage.py runserver 0.0.0.0:8000 ctrl+a d # how to make this into shell script?? 当我执行这个脚本时,我进入屏幕,python服务器被杀死。但是脚

如何使用shell脚本重新启动django runserver?我在屏幕内运行了django服务器

这是我的shell脚本restartpython.sh:

killall -9 python
screen -r
sleep 5
exec python manage.py runserver 0.0.0.0:8000
ctrl+a d          # how to make this into shell script??
当我执行这个脚本时,我进入屏幕,python服务器被杀死。但是脚本没有运行这一行:

exec python manage.py runserver 0.0.0.0:8000
它显示了这个错误:

python: can't open file 'manage.py': [Errno 2] No such file or directory

另外,如何在shell脚本中运行ctrl+AD(以退出屏幕)?。谢谢。

使用和来重新加载服务器,而不是运行服务器。

这听起来像是一个被黑客攻击的伪生产配置。你想做什么?@Chris我想做一个脚本来重新启动django运行服务器。因为,django运行服务器有时会卡住。我现在还在开发阶段。我将在生产中使用其他方法。通常我只运行
python manage.py
,并让它在打开的终端窗口中运行。有没有什么特别的原因让你把
screen
和一个自定义shell脚本添加到混合中,从而使事情变得复杂?(请注意,
killall-9python
几乎肯定不是应该放在那里的东西。而且您可能也不需要
exec
)@Chris我使用screen,因为我想在后台运行django,我可以退出ssh并让它运行。您使用远程服务器进行开发吗?在这种情况下,我会考虑为服务器上的任何操作系统编写一个init脚本。不过,在本地开发设备上运行开发服务器可能更容易。这意味着放弃开发服务器的自动重新加载功能…请参阅