我想创建将以ubuntu开头的服务,并且能够使用django模型等。 该服务将创建线程util.WorkerThread并在main.py中等待一些数据
if __name__ == '__main__':
bot.polling(none_stop=True)
我该怎么做呢我只是不知道我需要寻找什么。
如果您也可以说我如何使用这样的脚本创建ubuntu自动启动服务,请告诉我)
P.S。所有django项目都是通过uwsgi以皇帝模式运行。
答案 0 :(得分:0)
在我看来,最简单的方法是创建一个脚本并在crontab上运行。
首先创建一个脚本来启动你的django应用程序。
#!/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