我使用supervisor 3守护一个python进程,这个进程是通过一个为python设置一些configuration的bash脚本启动的。 bash脚本在前台运行python程序,FWIW。 这个设置有以下问题:当supervisord试图杀死进程时,它只会杀死bash脚本,而不是python进程。 所以我最终泄漏了运行旧代码的python进程,随后出现各种问题。 我怎样才能解决这个问题? 主pipe是否有一些configuration选项来告诉它杀死subprocess? bash脚本是否会捕获TERM信号并将其明确传递给孩子会有帮助吗? 这似乎是不必要的,因为当我从交互式shell运行它,子python进程被杀死就好了。 我看到主pipe让我select要杀的信号,现在默认为TERM 。 可能改变这种帮助?
我正在运行一个数据库支持的网站,收到很less的stream量。 然而,一天或两天,请求将会超时,我会在Nginx的error.log看到这个(或类似的)错误: 2013/06/13 18:32:40 [error] 16723#0: *27796 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 199.71.215.214, server: app.mypythonwebapp.com, request: "POST /api?submit_staker_response HTTP/1.1", upstream: "uwsgi://unix:/var/run/uwsgi/app.mypythonwebapp.com-uwsgi.sock", host: "app.mypythonwebapp.com", referrer: "https://app.mypythonwebapp.com/survey/5/791/70ea73eb9a489f2dead804a95c400ab2" 我正在运行uWSGI,在它的日志文件中没有任何与此相关的东西(我可以告诉)。 我怀疑它可能是PostgreSQL相关的,但如果我通过pg_stat_activity检查它的状态,我什么都看不到。 这是我的uWSGI YAMLconfiguration文件: uwsgi: socket: /var/run/uwsgi/%n-uwsgi.sock workers: 5 buffer-size: 32768 callable: app wsgi-file: /opt/sites/app.mypythonwebapp.com/run.py virtualenv: /opt/virtualenv/app.mypythonwebapp.com pythonpath: /opt/sites/app.mypythonwebapp.com 我所在的服务器有两个(虚拟化的)核心,所以我做了1 +核心* […]
我有一个Django网站,我想定期运行一段Python代码。 什么将是一个很好的方法来做到这一点? 我知道我可以cron ,但我更喜欢Django的解决scheme。 我知道有一个叫做celery的模块,它应该这样做,但是它需要安装RabbitMQ并将其configuration为与Apache交互,这是另一个需要维护的事情,我宁愿避免这种情况。 有什么build议么?
我正在寻找在我的VPS上运行一些Django站点,nginx作为它的前端。 我一直有mod_python和Apache的一些问题,该网站只是开始错误,每当stream量开始拿起,因为它只是使用这么多的RAM为每个请求。 所以我做了一些研究,发现mod_python真的不是我最好的select,小VPS。 我的设置有nginx服务静态文件(javascript,css,图像),并使用memcached通过cachingApache“制作”的页面来大幅减less对Apache后端的请求,但是这仍然在运行mod_python ,而且昨天我还有一些人说他们无缘无故地得到了500个错误。 我现在要做的就是使用FastCGI来运行Django,我已经读过它可以用更less的内存来处理更高的stream量,但是configuration对于我来说有点奇怪; 我根本就不是专家。 我正在看的主要是这些选项: maxspare=NUMBER max number of spare processes / threads minspare=NUMBER min number of spare processes / threads maxchildren=NUMBER hard limit number of processes / threads method=IMPL prefork or threaded (default prefork) 任何帮助确定我应该设置这些将不胜感激。 我也想知道如何/如果这些提到的进程都与nginx工作进程有关。 服务器托pipe着4个网站,通常每天处理几千个点击,但它们都倾向于与大多数stream量同时发生,这就是问题出现的时间。 此外,我读了一些关于使用Tornado作为Django的WSGI服务器的地方…这可能是一个更好的解决scheme吗? 谢谢!
如何configurationISPConfig的mod_python或mod_wsgi的Django的应用程序部署?
我在/etc/init.d中有一个守护进程脚本,它使用tcpdump命令执行一些后台数据包logging。 脚本使用sudo /etc/init.d/packetlog start使用交互式shell 启动正常 当我通过我的结构脚本(下面)执行相同的命令时,该命令成功返回,但进程没有运行。 def startpacketlog(): sudo(r'/etc/init.d/packetlog start') 除此之外,服务不会像我预料的那样在启动时自动启动。 一些技巧来解决这个将不胜感激 脚本在这里,并从这个原始的修改 更新这似乎是一个普遍的问题,在这台主机上使用fabric启动任何服务。 当启动apache2服务时,我得到同样的问题。 尽pipe我可以成功地停止使用结构的服务。 更新2重新阅读文档和一些实验后,下面的修改解决了这个问题。 (这会禁用远程伪terminal,不pipe是什么) def startpacketlog(): sudo(r'/etc/init.d/packetlog start',pty=False)
我正在尝试设置一个python脚本来查询过去5分钟内所有更新的数据库。 鉴于更新的数量,它必须尽可能精确(我们的logging是时间戳到微秒)。 有两种方法我正在考虑解决这个问题 – 首先是使用cron。 然而,这依赖于cron的精确度,每次运行时总是以相同的间隔运行。 所以如果第一个执行时间是00:00:00.123456789,那么需要在00:05:00.123456789处再次运行。 否则,有可能在两者之间的差距中遗漏logging。 另一个select是find一种方法来“捕捉”SQL查询到最近的分钟,向下舍入。 但是,如果我可以使用cron,我宁愿这样做,以尽可能简单的事情。
我试图find一个最佳的方式来设置我的服务器使用NGINX和UWSGI服务python应用程序。 以下工作到目前为止: 初始设置: sudo apt-get install nginx uwsgi uwsgi-plugin-http uwsgi-plugin-python python-setuptools easy_install pip pip install web.py 在/ etc / nginx的/网站可用/默认: server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; } } 然后我有一个基本的myapp.py(位置不关心当前的设置): import web urls = ( '/', 'index' ) app = web.application(urls, globals()) class index: def GET(self): return "Hello from […]
我跟着这个post来服务我的Django项目。 该项目与manage.py runserver运行服务器运行良好,我想设置为生产。 这是我的设置文件: nginx.conf : upstream django { server /tmp/vc.sock; #server 10.9.1.137:8002; } server { listen 8001; server_name 10.9.1.137; charset utf-8; client_max_body_size 25M; location /media { alias /home/deploy/vc/media; } location /static { alias /home/deploy/vc/static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } uwsgi.ini : [uwsgi] chdir = /home/deploy/vc wsgi-file = vc/wsgi.py master […]
我试图设置uwsgi使用pypy以下是张贴在这里,使用构buildPyPy支持作为插件的方法。 http://uwsgi-docs.readthedocs.org/en/latest/PyPy.html 我似乎设法build立使用pypy插件: Linux x86 64位: http : //projects.unbit.it/downloads/pypy/libpypy-c-x86_64_20130524.so 现在我用下面这个ini文件运行uwsgi : [uwsgi] plugins = /home/alphad/uwsgi-2.0/pypy http = :8080 chdir = /var/www/projecta/src/myproject pypy-pp = .. env = DJANGO_SETTINGS_MODULE=myproject.settings processes = 6 master=true disable-logging = false catch-exceptions = false post-buffering = 8192 vacuum = true listen = 120 pypy-home = /home/alphad/pypy-2.2.1-linux64/ pypy-lib = /home/alphad/pypy-2.2.1-linux64/lib_pypy/libpypy-c.so pypy-wsgi-file = myproject/apache/django.wsgi […]