启动django app作为服务

时间:2017-11-29 12:52:33

标签: python django ubuntu

我想创建将以ubuntu开头的服务,并且能够使用django模型等。 该服务将创建线程util.WorkerThread并在main.py中等待一些数据

if __name__ == '__main__':
   bot.polling(none_stop=True)

我该怎么做呢我只是不知道我需要寻找什么。

如果您也可以说我如何使用这样的脚本创建ubuntu自动启动服务,请告诉我)

P.S。所有django项目都是通过uwsgi以皇帝模式运行。

3 个答案:

答案 0 :(得分:0)

在我看来,最简单的方法是创建一个脚本并在crontab上运行。

首先创建一个脚本来启动你的d​​jango应用程序。

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

保存脚本并使用以下命令打开crontab:

crontab -e

现在编辑crontab文件并写在最后一行:

@reboot path/to/your/script.sh

如果您对Linux启动服务的创建不满意,这种方式不是最好的,但最简单。

我希望这可以帮助你:)。

答案 1 :(得分:0)

看看supervisord。它比daemonizing python脚本容易得多。

配置如下:

[program:watcher]
command = /usr/bin/python /path/to/main.py
stdout_logfile = /var/log/main-stdout.log
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile = /var/log/main-stderr.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 5

答案 2 :(得分:0)

好的,这就是答案 - https://www.raspberrypi-spy.co.uk/2015/10/how-to-autorun-a-python-script-on-boot-using-systemd/

在新版本中,/ etc / init中的ubuntu服务.conf失败,错误为Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

但服务使用systemd