无法在后台运行python脚本

2024-09-30 14:38:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个python脚本。当我直接运行它(如下所示)它运行良好。在

python check_C1_criteria_file.py > test.out

但当我在后台运行它时(如下所示),它既不显示任何结果也不显示错误。在

^{pr2}$

或者

nohup python check_C1_criteria_file.py &

会出什么问题?有人能帮我吗?在

更新

脚本的主要部分如下:

 blastOutput_file=sys.argv[1];
 lengthFile = sys.argv[2];
 with open(blastOutput_file, 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter='\t')
    sys.stdout.write('#query_id'+'\t'+'Mapping_Id'+'\t'+'Description'+'\n');
    for row in reader:
        tid=row[0];
        subid=row[1];
        mapid=getMapping_id(subid);
        idDes = search_id(lengthFile, mapid);
        if idDes is not None:
            sys.stdout.write(tid+'\t'+str(mapid)+'\t'+str(idDes)+'\n');

我错过什么了吗?在


Tags: py脚本idchecksysreaderfilerow
2条回答

你可以试试

nohup python check_C1_criteria_file.py >test.out 2>&1 &

你最好检查一下这个程序是否正常终止。在

你的脚本有没有做任何终端处理?除了简单的sys.stdout.write()或调用print(Python2.x)或{}(Python3.x)之外,它是否执行任何I/O操作?它是否执行input()raw_input()sys.stdin.read()操作?是Python 2还是3?在

粗略地说,在后台运行命令与在前台运行命令时唯一不同的是它对终端的任何调用。在后台试图访问终端的进程可能会处于休眠状态,直到它回到前台。对标准输出的正常写入不会阻止。。。但是对curses函数的任何调用,甚至是getpass()中的一些termio内容,都可能会将终端设置为阻止尝试的终端写入的模式。在

相关问题 更多 >