首页 > 解决方案 > 关于从 zsh 中的 python 可执行文件中删除进程的问题

问题描述

zsh尝试在后台运行进程并使用&!快捷方式拒绝它时,我遇到了一些问题。

我既不是zsh也不是 的专家python,所以很可能我在这里遗漏了一些明显的东西。

可执行文件是以下python程序,调用它test.py(我正在使用python2.7.15):

#!/usr/bin/env python
from __future__ import print_function
import time

for idx in range(5):
  print(idx)
  time.sleep(2)

with open('test.txt','w') as ofile:
  ofile.write('done')

经过反复试验,我注意到以下几点:

  1. 如果我运行./test.py &!然后注销,则该过程不会成功完成(我通过查看文件的存在和内容来检查test.txt);看起来它并没有被否认,并且注销会导致它停止;

  2. 如果我运行./test.py > test2.txt &!,然后注销,它会按预期工作(同样,基于test.txt文件的存在);

  3. 如果我注释掉第二行 ( from __future__ ..),修改print语句,运行./test.py &!,然后注销,它也可以按预期工作。

我错过了什么?有没有办法让 1. 工作,而不诉诸 2. 或 3.?

标签: pythonzsh

解决方案


推荐阅读