Bash脚本终止,删除其子进程

时间:2013-04-16 11:25:54

标签: linux bash process

我正在Linux(3.2.0-29-generic)上运行bash脚本,在循环中产生大约200个后台进程,并且每个进程中都有10个线程。我观察到,一旦计数超过175,脚本就会自行终止,并且所有生成的进程也会终止。我无法理解为什么如果bash脚本终止,子进程应该消失,除非操作系统认为脚本违反了规则并决定终止整个进程链。我没有捕获脚本中任何命令的返回值。

'ulimit -a'的输出表明我完全在最大进程数限制范围内。

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15882
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15882
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

系统有一个双核CPU和2GB RAM,否则没有加载。

以下是我正在使用的脚本:

#!/bin/bash
local_port=1700
remote_port=1700
for i in `seq 0 200`;
do
    sudo tunctl -u uml-net -g uml-net -t tap$i
    sudo brctl addif br0 tap$i
    sudo ifconfig tap$i up
    sudo ./openwrt-uml-vmlinux ubd0=cow$i,openwrt-uml-ext4.img con0=null con=fd:0,fd:1 \
    eth0=tapng,,tap$i
eth1=l2tpv3,,10.x.y.z,$local_port,,$remote_port,0xabab9876abab9876,0xabcd1234abcd1234,2 \
    cgroup_disable=memory mem=24M umid=cow$i init=/etc/preinit > UML_output$i.txt 2>&1 &
    echo "Created UML $i"
    let local_port=local_port+1
    let remote_port=remote_port+1
    sleep 2 
done

知道可能出现什么问题吗?

0 个答案:

没有答案