从bash脚本运行“python manage.py runserver”
我想通过一个bash脚本来运行 "python manage.py runserver"。
首先,如果我想在终端里运行 "python manage.py runserver &",但是这样并不奏效。我在这个链接(https://code.djangoproject.com/changeset/16327)找到了解决办法。在终端里手动运行 "python manage.py runserver &" 是可以正常工作的。可是我在bash脚本里加上 "python manage.py runserver &",但服务器却没有启动。
Error:
File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 137, in main
reloader(main_func, args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 110, in python_reloader
reloader_thread()
File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 89, in reloader_thread
ensure_echo_on()
File "/usr/local/lib/python2.7/dist-packages/Django-1.3-py2.7.egg/django/utils/autoreload.py", line 77, in ensure_echo_on
attr_list = termios.tcgetattr(fd)
termios.error: (25, 'Inappropriate ioctl for device')
2 个回答
0
我用别名来启动Django服务器。也许这对你有帮助)
只需要在你的 ~/.bashrc
或 ~/.profile
文件的最后加上 alias django_serve="python manage.py runserver &"
这行代码。
你也可以创建一个 .bash_aliases
文件,把你的别名放到这个文件里,然后在执行任何操作之前运行这个文件,比如:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
6
问题可能是因为hudson没有以你的用户身份运行...你可以运行
source /home/your_user/.bashrc && django_serve
来让它以那个别名运行,但我觉得你可能需要切换用户
-- 或者 --
让hudson从它自己的源代码目录运行开发服务器
编辑: 看了你的错误信息,我觉得这样可能会解决你的问题:
不要使用
python manage.py runserver
试着添加 --noreload
这个参数来禁用自动重载功能
python manage.py runserver --noreload