我知道可以通过使用以下方式手动运行调度程序:
python web2py.py -K myapp
但这应该在生产环境中的哪里指定呢?我正在使用Ubuntu上的Apache标准web2py部署脚本。
我知道可以通过使用以下方式手动运行调度程序:
python web2py.py -K myapp
但这应该在生产环境中的哪里指定呢?我正在使用Ubuntu上的Apache标准web2py部署脚本。
为了完整地描述情况,如果在2015年之后使用Debian或其他Linux发行版,则应使用systemd。对于systemd,需要执行以下步骤:
创建文件/etc/systemd/system/web2py-sched.service
其中包含以下内容:
[Unit]
Description=Web2Py scheduler service
[Service]
ExecStart=/usr/bin/python /home/www-data/web2py/web2py.py -K <yourapp>
Type=simple
[Install]
WantedBy=multi-user.target
然后调用安装服务:
sudo systemctl enable /etc/systemd/system/web2py-sched.service
systemctl start /etc/systemd/system/web2py-sched
- Stuart Rolinsonsudo service web2py-sched start
- Sherlock70在Ubuntu 12.04版本中,我需要手动完成以下步骤:
in /etc/init directory create web2py-scheduler.conf file:
description "Web2py scheduler"
start on filesystem or runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 8 60
exec sudo -u user <path_to_web2py>/web2py.py -K <your_app>
in /etc/init.d exec:
ln -s /lib/init/upstart-job web2py-scheduler
(optional, only if you want manual startup) in /etc/init directory create the web2py-scheduler.override file:
manual
将调度程序作为Linux服务(upstart)启动
如果您希望在Linux上将调度程序安装为永久守护进程(使用Upstart),请将以下内容放入/etc/init/web2py-scheduler.conf,假设您的web2py实例已安装在用户主目录中,以user身份运行,使用应用程序myapp,在网络接口eth0上运行。
description "web2py task scheduler"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown
respawn limit 8 60 # Give up if restart occurs 8 times in 60 seconds.
exec sudo -u <user> python /home/<user>/web2py/web2py.py -K <myapp>
respawn
sudo start web2py-scheduler
sudo stop web2py-scheduler
sudo restart web2py-scheduler
sudo status web2py-scheduler