2
如果在dmesg中发现某些内容,如何创建一个无限循环来杀死进程?
我需要创建一个while循环,如果dmesg返回某个/任何值,那么它将终止已确定的进程。 这就是我所拥有的。 #!/bin/bash while [ 1 ]; do BUG=$(dmesg | grep "BUG: workqueue lockup" &> /dev/null) if [ ! -z "$BUG" ]; then killall someprocessname else break fi done 我不知道该! -z不该做[ test -n "$BUG" ] 我认为使用-n表示期望二进制。 我不知道该脚本是否还能工作,因为BUG锁定会中止每个进程,但是dmesg在计算机完全崩溃之前,仍然有几行内容-也许我可以追赶并杀死该进程。