我希望有一个能够杀死控制台窗口的脚本,无论是否正在运行,但同时保持执行此脚本的窗口。
感谢您的帮助
答案 0 :(得分:0)
您可以找到脚本(bash,sh,zsh等)的父命令名,然后使用该命令名终止所有进程。 这样你就可以杀死所有的bash进程,但是运行脚本。 即。
C=$(ps -p $(ps -p $$ -o ppid=) o args=)
P=$(ps -p $$ -o pid=)
for p in $(pgrep $C); do
if [ $p -ne $P ]; then
kill $p
fi
done
这非常 可移植。如果你还想关闭运行某些东西的控制台,它就变得更不便携了:
C=$(ps -p $(ps -p $$ -o ppid=) o args=)
P1=$(ps -p $$ -o pid=)
P2=$(ps -p $$ -o ppid=)
echo $(pgrep $C)
for p in $(pgrep $C | tail -n +2); do
[ $p -ne $P1 ] && [ $p -ne $P2 ] && kill -9 $p
done
| tail -n +2
。