2011-06-16 27 views
5

我想從一個bash腳本運行「蟒蛇manage.py runserver命令」從bash腳本

首先,如果我想從一個終端「的python manage.py runserver命令&都跑「蟒蛇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') 
+1

爲什麼哦爲什麼哦爲什麼不使用正常的部署機制... – 2011-06-16 08:28:50

+0

我想從Hudson中的作業(添加構建步驟 - > Execute shell)運行此命令。服務器啓動後,運行nosetests – 2011-06-16 08:33:02

+1

這是做錯的方法。單元測試 - 包括鼻子 - 應該使用代碼中的內置測試服務器和客戶端,而不是訪問實際的開發服務器。 – 2011-06-16 08:50:10

回答

6

之前,這個問題可能是哈德遜不運行作爲用戶...你可以運行

source /home/your_user/.bashrc && django_serve 

,使其運行該別名,但我想你可能需要切換用戶

- 或 -

有哈德森從它自己的源

編輯的結賬運行開發服務器:在您的埃羅看,雖然,我認爲這可以解決您的問題:

,而不是

python manage.py runserver 

嘗試添加--noreload標誌以禁用自動重新加載器

python manage.py runserver --noreload 
+0

我已經完成了以下工作:1.添加.bash_aliases別名django_server ='python manage.py runserver --noreload&''(沒有'--noreload'選項我得到上面描述的初始錯誤)2.複製〜/ .bash_aliases/var/lib/hudson。 3.在Hudson工作中(添加構建步驟 - > Execute shell)添加'。/var/lib/hudson/.bash_aliases'和'django_server'。服務器在後臺運行,Selenium測試正在使用nosetests運行。感謝您的答案。 – 2011-06-17 08:55:24

0

我使用別名來啓動django服務器。可能會有幫助)

只需在您的~/.bashrc~/.profile的末尾加上alias django_serve="python manage.py runserver &"即可。

還創建.bash_aliases,把你的別名到這個文件並執行它,你做任何操作,如

 

if [ -f ~/.bash_aliases ]; then 
    . ~/.bash_aliases 
fi 
 
+0

我在'〜/ .bashrc'中添加了'alias django_server =「python manage.py runserver&''並運行'source〜/ .bashrc'。我從終端運行命令'django_server'並且工作正常。然後我做了一個包含'django_server'的bash腳本,但是它告訴我'command not found'。 – 2011-06-16 15:06:40