2016-04-25 189 views
0

當Ubuntu服務器啓動或重啓時,我想讓我的邏輯服務器(Python3 + Django + uwsgi + nginx)自動運行。因此,我編寫了一個執行腳本(uwsgi --ini=/data/xxx.ini),並將其添加到/etc/rc.local當Ubuntu啓動或重新啓動時,Django Server自動運行?

於是,我重新啓動服務器,邏輯服務器上運行,當程序打印日誌到文件,python3拋出異常:

Traceback (most recent call last): 
    File "/usr/lib/python3.4/logging/handlers.py", line 73, in emit 
    logging.FileHandler.emit(self, record) 
    File "/usr/lib/python3.4/logging/__init__.py", line 1041, in emit 
    StreamHandler.emit(self, record) 
    File "/usr/lib/python3.4/logging/__init__.py", line 984, in emit 
    self.handleError(record) 
    File "/usr/lib/python3.4/logging/__init__.py", line 915, in handleError 
    traceback.print_stack(frame, file=sys.stderr) 
    File "/usr/lib/python3.4/traceback.py", line 286, in print_stack 
    print_list(extract_stack(_get_stack(f), limit=limit), file=file) 
    File "/usr/lib/python3.4/traceback.py", line 30, in print_list 
    print(item, file=file, end="") 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 95-100: ordinal not in range(128) 
Call stack: 
    File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/wsgi.py", line 177, in __call__ 
    response = self.get_response(request) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py", line 147, in get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "./carwashing/views/decorators.py", line 65, in _require_login_release 
    json_resp = views(request, user=token_cache.employee, *args, **kwargs) 

當我直接開始uwsgi在手冊中,它工作得很好。

+0

您應該使用[導師](http://supervisord.org/)這一點。 –

回答

0

你必須寫虛擬激活碼一個sh文件

#!/bin/bash 
clear 
cd /path/to your/virtual environment #path to your virtual environment 
. bin/activate #Activate your virtual environment 
cd /path/to your/project directory 
python manage.py runserver #run django server 

然後寫一個重啓cron作業這個sh文件,它會爲你工作。

檢查這個link瞭解更多詳情..