- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
TL;DR 版本:当我要求 Paster 停止守护进程时,它无法读取自己用来跟踪其进程 ID 的文件。
更长的版本:
我在 Windows Vista 上的 Python 2.7.1 上运行 Paster (pastescript 1.7.3)。
我的第一个惊喜来自运行一个简单的网站:
>paster serve development.ini
Starting server in PID 15184.
serving on http://127.0.0.1:5000
我希望在同一目录中找到一个 paster.pid 文件,但我没有。奇怪的。没关系,让我们通过终止该进程并重新开始来明确说明。
>paster serve development.ini --pid-file=my.pid
Starting server in PID 20884.
serving on http://127.0.0.1:5000
这一次,它创建了一个名为 my.pid 的文件。在另一个命令窗口中,我可以键入:
>type my.pid
20884
网站已成功提供服务,任务管理器确认有一个 PID 为 20884 的 python 进程正在运行。
现在,让 paster 报告守护进程的状态:
>paster serve development.ini --status --pid-file=my.pid
PID None in my.pid is not running
>type my.pid
20884
奇怪。它声称 my.pid 中的 PID 是 None
,但实际上不是。
让我们关闭它。
>paster serve --stop-daemon --pid-file=my.pid
PID in my.pid is not valid (deleting)
>type my.pid
The system cannot find the file specified.
于是,它尝试读取my.pid,读取不到,无奈删除。
同时守护进程继续运行。
我必须手动杀死粘贴守护进程,这是@Lennart Regebro 在 similar, less detailed question 中推荐的。 .我想将其自动化作为我测试的一部分,因此我希望找到一个更清洁的解决方案。
有什么建议吗?
最佳答案
来自粘贴脚本的源代码(serve.py
),在PID读取方法中:
pid = read_pidfile(pidfile)
if pid:
try:
os.kill(int(pid), 0)
return pid
except OSError, e:
if e.errno == errno.EPERM:
return pid
return None
在 POSIX 兼容平台上,将 0 指定为信号 just checks whether the process is alive .
但是,在Windows 上,没有kill
系统调用; python will use TerminateProcess
反而。从粘贴脚本中删除 os.kill
行或使用 POSIX 兼容平台,如 Cygwin (Windows 之上的 POSIX 层)或 Linux。
关于python - Paster 守护进程不会关闭,因为无法读取自己的 pid 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6463388/
我正在尝试使用粘贴器来创建灵巧的内容类型。 我在一个目标文件夹中做了一个新的 Plone 4.3.4 独立安装,该文件夹与我之前使用的文件夹不同,因此构建缓存将是干净的。 我使用的操作系统是 Ubun
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Paste (Python) Web Server - Autoreload Problem 我正在开发一个 Pyl
不知道发生了什么,但突然之间,粘贴器停止在我的服务器上工作(与 virtualenv 和 Pyramid 一起工作)。尝试重新安装所有内容,但没有成功 - 再次出现同样的错误: Traceback (
是否可以运行“paster shell blah.ini”(或其变体)并让它自动加载某些库? 我讨厌必须总是在每个 paster shell 中输入“from foo.bar import mystu
我正在安装一个应用程序并安装了 python 和 easy_install。我现在有两个步骤要完成: 5. Make a config file as follows:: paster mak
我刚跑完 bin/paster create -t dexterity my.example 运行后,我有以下内容: bootstrap.py docs my.example.egg-inf
如何使用pyramid.wsgi文件中的product.ini文件的相对路径作为paster.get_app()函数的参数? 我尝试了一下,它一直提示找不到该文件。在错误消息中,它添加了一个起始正斜杠
我正在使用 --paster 启动 gunicorn运行 Pyramid 的选项。 gunicorn -w 1 --paster development.ini 例如,gunicorn 自己的消息在控
Python 的 paster serve app.ini 为第一个请求准备的时间比我希望的要长。 我知道如何使用中间件分析请求,但如何分析初始化时间?我希望它不要 fork 线程池并在准备好服务后立
我正在尝试通过 cron 作业访问我的 pylons 应用程序,以向我的用户发送通知。我这样做的方法是使用以下内容运行应用程序: paster request myconfig.ini /mainte
我有 4 个节点运行 Paster 应用程序,一旦更改配置,我需要更改 4 个节点上的配置文件。如果节点数量越来越多,那就很头疼了。 我相信这应该是在多台机器上运行 Paster 的人的常见问题,有什
我正在使用Python + ZOPE/ZODB/Repoze BFG(缩写词都变得相当困惑)+粘贴器。 我有一个可以通过执行以下操作来运行的粘贴外壳: paster --plugin repoze.b
在 OSX 10.9 上本地安装 CKAN,基于 http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.h
paster 是否为每个请求创建一个新线程? 您可以设置供 paster 使用的最大线程数,即线程池吗?如果可能的话,你怎么做? 最佳答案 根据 the docs ,paster 支持不同的服务器选择
我已经按照源代码 (http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html) 中的 CKAN 安装
TL;DR 版本:当我要求 Paster 停止守护进程时,它无法读取自己用来跟踪其进程 ID 的文件。 更长的版本: 我在 Windows Vista 上的 Python 2.7.1 上运行 Past
Alex Papadimoulis Smart Paster是一个很棒的小工具,可以以程序员友好的方式粘贴文本(例如作为 StringBuilder,作为特定于语言的字符串文字等)。但是,它似乎不适用
好像PasteScript的 paster create 功能几乎是唯一广泛使用的框架,用于在 python 中构建/生成项目框架。我想知道人们使用的 Python 世界中是否有任何替代品? 更新 我
由于我的 pylons 应用程序中存在一些复杂的子域路由规则,我需要通过 nginx 运行我的开发,否则无法处理。 我一直在使用lighttpd + Paster + Flup#scgi_thread
有谁知道任何类似于 的免费插件智能贴 ,但对于 Visual Studio 2010 呢? 不幸的是,Smart Paster 仅适用于 VS2005 和 VS2008。 对于那些不知道我在说什么的人
我是一名优秀的程序员,十分优秀!