当Ubuntu启动或重新启动时,Django Server自动运行?
问题描述:
当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在手册中,它工作得很好。
答
你必须写虚拟激活码一个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了解更多详情..
您应该使用[导师](http://supervisord.org/)这一点。 –