Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是一个使用tqdm进度条的简单脚本:
tqdm
from tqdm import tqdm from time import sleep for i in tqdm(range(10000)): sleep(1)
有时我想让它在我的服务器上运行并退出。自然,在这些情况下,我对查看进度条并不感兴趣。我这样做:
$ python mytest.py & $ disown $ exit
但是一旦我退出,这个过程就会停止。为什么会发生,该怎么办?
我想答案可能会在这里提到。
调用disown不会完全断开进程与终端的连接。由于sys.stdin,sys.stout和sys.stderr是从 shell 继承的,因此如果终端被破坏,脚本将在尝试打印到标准错误时立即失败,这会tqdm尝试执行。
disown
sys.stdin
sys.stout
sys.stderr
我不知道您是否正在运行子shell,或者该exit命令是否会破坏终端。如果后者是真的,那可能解释了进程终止的原因。您也许可以尝试将所有终端输出重定向/dev/null到,看看是否有帮助?
exit
/dev/null