我正面临一个问题。
我们有一个干净的脚本用于清理旧文件,有时我们需要将其停止并稍后再次启动它。像下面的过程一样。我们在check.sh中使用kill -STOP $pid
和kill -CONT $pid
来控制clean.sh,$pid
是clean.sh的所有pid(在那里,它们是23939,25804):
root 4321 0.0 0.0 74876 1184 ? Ss 2015 0:25 crond
root 23547 0.0 0.0 102084 1604 ? S 2015 0:00 \_ crond
root 23571 0.0 0.0 8728 972 ? Ss 2015 0:00 \_ /bin/bash -c bash /home/test/sbin/check.sh >>/home/test/log/check.log 2>&1
root 23577 0.0 0.0 8732 1092 ? S 2015 0:00 \_ bash /home/test/sbin/check.sh
root 23939 0.0 0.0 8860 1192 ? S 2015 0:45 \_ bash /home/test/bin/clean.sh 30
root 25804 0.0 0.0 8860 620 ? S 2015 0:00 \_ bash /home/test/bin/clean.sh 30
root 25805 0.0 0.0 14432 284 ? T 2015 0:00 \_ ls -d ./455bb4cba6142427156d2b959b8b0986/120x60/ ./455bb4cba6142427156d2b959b8b0986/80x
root 25808 0.0 0.0 3816 432 ? S 2015 0:00 \_ wc -l
check.sh在几小时后停止了clean.sh,check.sh启动了clean.sh,但有一个奇怪的事情,在停止并继续之后,有一个子进程'ls -d ....
',它还在停止。
你能告诉我它是否是由错误使用信号引起的吗?我该如何修改它?
答案 0 :(得分:1)
这将继续子进程。