使用'&'并且等待'

时间:2018-04-14 17:47:43

标签: linux bash wait background-process

我有一个简单的脚本,它在后台运行几个进程,然后wait让它们完成:

#!/usr/bin/env bash

sleep 100 &
sleep 200 &

wait

然而,当我运行该脚本然后将其删除时,2个后台进程继续运行。有没有办法等待它们完成,如果shell被杀,还可以杀死它们吗?

1 个答案:

答案 0 :(得分:1)

您可以使用public static boolean isPalindrome(String p) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < p.length(); i++) { char ch = Character.toLowerCase(p.charAt(i)); if (Character.isLetter(ch)) { sb.append(ch); } } int len = sb.length(); for (int i = 0; i < len / 2; i++) { if (sb.charAt(i) != sb.charAt(len - i - 1)) { return false; } } return true; } 在退出父进程时调用的函数中调用pkill

trap

现在,当您按#!/usr/bin/env bash # this function will be called when main script exits killall() { # echo "killing all child process of parenr pid $$" pkill -TERM -P $$ } # set trap function on exit trap killall exit sleep 100 & sleep 200 & wait 或终止父脚本终止父脚本时,将会执行ctrl-C