Python 处理couchdb通知的外部进程导致崩溃

Python 处理couchdb通知的外部进程导致崩溃,python,process,crash,couchdb,Python,Process,Crash,Couchdb,我无法通过python脚本处理对couchdb数据库的更改 data = 'test' f = open('/home/username/test','w') f.write(data + '\n') f.close() 这是我尝试运行的脚本(用于测试目的)。 它名为“list.py”,位于“/usr/local/src/couchdb”中。 我修改了我的“/etc/couchdb”文件夹中的“local.ini”,添加: [update_notification] list = python

我无法通过python脚本处理对couchdb数据库的更改

data = 'test'
f = open('/home/username/test','w')
f.write(data + '\n')
f.close()
这是我尝试运行的脚本(用于测试目的)。 它名为“list.py”,位于“/usr/local/src/couchdb”中。 我修改了我的“/etc/couchdb”文件夹中的“local.ini”,添加:

[update_notification]
list = python /usr/local/src/couchdb/list.py
每次修改时都应该调用这个脚本,但是它几乎在我启动服务器时就导致couchdb崩溃。 这是错误日志(我想)

[Sat,2015年10月24日23:05:09 GMT][error][{错误报告,,
{,撞车报告,
[{初始呼叫,
{coach_os_进程,init,['Argument__1']},
{pid,},
{注册名称,[]},
{错误信息,
{退出,
{退出状态,1},
[{gen_服务器,终止,6,
[{file,“gen_server.erl”},{line,744}]},
{proc_lib,init_p_do_apply,3,
[{file,“proc_lib.erl”},{line,239}]},
{祖先,
[沙发床数据库更新,沙发床主要服务,
coach_server_sup,]},
{消息,[]},
{links,[]},
{字典,[]},
{trap_exit,false},
{状态,正在运行},
{heap_size,987},
{堆栈大小,27},
{减少,884}],
[]]}}
[Sat,2015年10月24日23:05:09 GMT][错误][]更新通知
进程已死亡:{退出_状态,
[Sat,2015年10月24日23:05:09 GMT][error][{error_report,,
{,主管报告,
[{主管,{本地,coach_db_update_notifier_sup},
{errorContext,child_terminated},
{原因,正常},
{罪犯,
[{pid,},
{name,“list”},
{mfargs,
{coach_db_update_通知程序,启动链接,
[“python/usr/local/src/couchdb/list.py”]},
{restart_type,permanent},
{关闭,1000},
{child_type,supervisor}]}}}
[Sat,2015年10月24日23:05:09 GMT][错误][]**通用服务器终止
**最后一条消息是{#端口,{exit#u status,1}}
**当服务器状态=={os_proc,“python/usr/local/src/couchdb/list.py”,
#港口,
#有趣,
#乐趣,5000}
**终止原因==
**{退出状态,1}

我遗漏了什么?非常感谢

couchdb进程是否有权读取/写入脚本中的文件?它可能属于您,而couchdb进程可能没有权限写入它

因此,在couchdb中处理通知的外部进程似乎需要一个无限循环,在该循环中读取每个stdin时间,否则它不工作

import sys

line = str(sys.stdin.readline())
while line:
    print(line)
    line = sys.stdin.readline()

例如,此代码(python)读取并打印每个通知…

我不确定您的意思…脚本和目标目录都处于777模式。您正在写入“username”目录,couchdb进程可能无法访问该目录。请尝试写入类似
/var/log/test的内容(并确保正确设置了测试目录的权限,以便couchdb可以对其进行写入)我发现问题出在哪里。问题不在于权限,而在于couchdb通知系统,因为它需要一个无限循环,每次显示stdin时都会读取它,否则它就不起作用。无论如何,谢谢。P.s.我应该回答我自己的问题然后关闭它还是什么?我得到的行总是空的。对此有什么想法吗?这是我的python脚本'line=str(sys.stdin.readline())'而line:fromaddr='1lollyssium@gmail.com“toaddrs=”asifkamal71@gmail.com'msg=line+'有一些更改..'username='emailid'password='password'server=smtplib.SMTP('SMTP.gmail.com:587')server.starttls()server.login(用户名、密码)server.sendmail(fromaddr,toaddrs,msg)server.quit()line=sys.stdin.readline()
import sys

line = str(sys.stdin.readline())
while line:
    print(line)
    line = sys.stdin.readline()