即使作业完成也不会清除队列?

即使作业完成也不会清除队列?

我有一些非常简单的 python 代码,用于设置作业队列,并通过管道传输到 linuxbatch命令:

import subprocess

for j in range(1,17):
  process = subprocess.Popen('/bin/sh', '-c', f'python test.py {j} | batch')
  process.communicate()
  print(process.returncode)

当我运行这个时,print(process.returncode)打印出这一行0,这意味着成功。

在子进程中调用的脚本test.py只会写入一个快速 txt 文件,因此不会消耗任何资源:

import sys

with open(f'{sys.argv[1]}.txt', 'w') as f:
    f.write('hello')

此代码创建了 16 个作业,并且似乎一次运行了所有作业(batch对于我目前所做的事情来说,这有点毫无意义,因为服务器从未达到需要排队作业的负载,但我现在才开始学习)。运行它后,当我atq在终端中输入时,我可以看到没有任何作业正在运行(否=b),但它们也没有清除队列,尽管它们似乎成功了,因为它们写入了文本文件并给了我一个返回码0。他们不清除队列的原因可能是什么?如果这是一个隐藏的错误,我该如何获取该输出?

57      Wed Aug 16 18:37:00 2023
48      Wed Aug 16 18:37:00 2023
58      Wed Aug 16 18:37:00 2023
49      Wed Aug 16 18:37:00 2023
56      Wed Aug 16 18:37:00 2023
60      Wed Aug 16 18:37:00 2023
51      Wed Aug 16 18:37:00 2023
59      Wed Aug 16 18:37:00 2023
50      Wed Aug 16 18:37:00 2023
55      Wed Aug 16 18:37:00 2023
54      Wed Aug 16 18:37:00 2023
47      Wed Aug 16 18:37:00 2023
52      Wed Aug 16 18:37:00 2023
61      Wed Aug 16 18:37:00 2023
53      Wed Aug 16 18:37:00 2023
62      Wed Aug 16 18:37:00 2023
...

相关内容