杀死Python背景过程gitlab-ci



我正在尝试杀死python的工作

python

import asyncio
def main():
    loop = asyncio.get_event_loop()
    try:
        loop.run_forever()
    except KeyboardInterrupt:
        print('Stopping')

if __name__ == '__main__':
    main()

这是运行的命令。

$ COVERAGE_FILE=.coverage.test coverage run test.py &
$ TEST_PID=$!
$ echo "${TEST_PID}"
26
$ kill -SIGINT ${TEST_PID}
$ jobs -l
[1]+  26 Running                 
$ kill -9 ${TEST_PID}
$ jobs -l
[1]+  26 Running                 

我永远看不到.coverage.test,因为工作永远不会完成。但是,当我在本地运行命令时,它似乎可以正常工作。

最终找到了解决方案:
- 首先,如下所述添加signal.signal(signal.SIGINT, quit_gracefully)
- 然后在杀死之后添加wait命令:

COVERAGE_FILE=.coverage.test coverage run test.py &
TEST_PID=$!
kill -SIGINT ${TEST_PID}
wait

最新更新