杀进程的SHELL
时间:2006-12-18 来源:shana
#!/sbin/sh
echo 请输入要终止程序的名称,如:werfiles
read program
number=0;
number=`ps -ef|grep $program|grep -v grep|wc -l`;
if [ $number = 1 ];then
(pid=`ps -ef|grep $program|grep -v grep|awk '{print $2}'`;
ps -ef|grep $pid|grep -v grep|awk '{print $2}' > id;
cat id|while read id;
do
kill $id
done)
elif [ $number = 0 ];then
echo "没有 【 $program 】 相关进程!脚本退出。"
elif [ $number > 1 ];then
(echo "输入程序名称 【 $program 】 父进程不是唯一的,如:";
echo "root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd";
echo "root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd";
echo "是否终止所有进程及子进程?【Y/N】";
read input;
if [ $input = "Y" ];then
(ps -ef|grep $program|grep -v grep|awk '{print $2}' > course;
cp /dev/null id;
cat course|while read course;
do
ps -ef|grep $course|grep -v grep|awk '{print $2}' >> id;
done
cat id|while read id;
do
kill $id
done)
elif [ $input = "N" ];then
echo 脚本退出!
else
echo "输入错误,只允许输入【Y/N】!"
fi)
fi 注:以下是运行此脚本的状态: [testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
N
脚本退出!
[testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
k
输入错误,只允许输入【Y/N】!
[testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
Y
[testmem:/user/test_shell]$>
echo 请输入要终止程序的名称,如:werfiles
read program
number=0;
number=`ps -ef|grep $program|grep -v grep|wc -l`;
if [ $number = 1 ];then
(pid=`ps -ef|grep $program|grep -v grep|awk '{print $2}'`;
ps -ef|grep $pid|grep -v grep|awk '{print $2}' > id;
cat id|while read id;
do
kill $id
done)
elif [ $number = 0 ];then
echo "没有 【 $program 】 相关进程!脚本退出。"
elif [ $number > 1 ];then
(echo "输入程序名称 【 $program 】 父进程不是唯一的,如:";
echo "root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd";
echo "root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd";
echo "是否终止所有进程及子进程?【Y/N】";
read input;
if [ $input = "Y" ];then
(ps -ef|grep $program|grep -v grep|awk '{print $2}' > course;
cp /dev/null id;
cat course|while read course;
do
ps -ef|grep $course|grep -v grep|awk '{print $2}' >> id;
done
cat id|while read id;
do
kill $id
done)
elif [ $input = "N" ];then
echo 脚本退出!
else
echo "输入错误,只允许输入【Y/N】!"
fi)
fi 注:以下是运行此脚本的状态: [testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
N
脚本退出!
[testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
k
输入错误,只允许输入【Y/N】!
[testmem:/user/test_shell]$>sh a.sh
请输入要终止程序的名称,如:werfiles
schd
输入程序名称 【 schd 】 父进程不是唯一的,如:
root 70392 70387 0.0 19:24:12 ?? 0:01.32 man telnetd
root 70275 944 0.4 12:22:17 ?? 0:00.03 telnetd
是否终止所有进程及子进程?【Y/N】
Y
[testmem:/user/test_shell]$>
相关阅读 更多 +