linux – 如何在不中断正在运行的作业的情况下终止GNU并行?
我正在运行一堆
shell脚本
parallel -a my_scripts bash 并且在某些时候我决定我已经运行了足够多的东西并且想要停止产生新的工作,并且简单地让所有现有工作完成.换句话说,我想杀死父进程而不杀死孩子. 似乎有ways of controlling termination when first launching GNU parallel(例如,如果我事先知道我只想运行x作业,那么我现在可以使用–halt,success = x参数),但我找不到如何控制GNU并行已经运行. 当然,我只能按CTRL C来杀死并行,并重新运行已中止的作业,但我认为可能有更聪明的方法. 解决方法
我想到了.答案是简单地将SIGTERM发送到父并行进程(只是杀死它的PID会这样做). parallel然后响应以下(在这种情况下我运行了4个作业):
parallel: SIGTERM received. No new jobs will be started. parallel: Waiting for these 4 jobs to finish. Send SIGTERM again to stop now. 我把它挖出了手册页:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |