当前位置: 技术问答>linux和unix
如何杀死指定的进程
来源: 互联网 发布时间:2016-04-16
本文导语: 我想在我的linux服务器上定时的去杀一些进程 我从网上找到了一个 但是不太会用 function kill_process { for pid in `cat $1` do { echo "$pid" kill -9 $pid } done rm -f $1 } ps aux | grep "cef" | grep -v "grep" | awk '{print ...
我想在我的linux服务器上定时的去杀一些进程 我从网上找到了一个 但是不太会用
function kill_process
{
for pid in `cat $1`
do
{
echo "$pid"
kill -9 $pid
}
done
rm -f $1
}
ps aux | grep "cef" | grep -v "grep" | awk '{print $2}' > /tmp/cef.pid
kill_process "/tmp/cef.pid"
ps aux | grep "mas" | grep -v "grep" | awk '{print $2}' > /tmp/mas.pid
kill_process "/tmp/mas.pid"
ps aux | grep "jboss" | grep -v "grep" | awk '{print $2}' > /tmp/jboss.pid
kill_process "/tmp/jboss.pid"
ps aux | grep "snmp" | grep -v "grep" | awk '{print $2}' > /tmp/snmp.pid
kill_process "/tmp/snmp.pid"
ps -a | grep cef | grep -v cef_monitor | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep mas | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep jboss | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep snmp | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
比如我想杀一个进程是/usr/libexec/openssh/sftp-server 但是有很多个
我的命令是 killall sftp_server 就可以了 我应该如何把这个放到上面的shell里.这个我是在crontab设置的 有没有可以隐藏的呀 我不想被别人发现 呵呵 或者有没有别的办法 杀进程 谢谢各位高手了
function kill_process
{
for pid in `cat $1`
do
{
echo "$pid"
kill -9 $pid
}
done
rm -f $1
}
ps aux | grep "cef" | grep -v "grep" | awk '{print $2}' > /tmp/cef.pid
kill_process "/tmp/cef.pid"
ps aux | grep "mas" | grep -v "grep" | awk '{print $2}' > /tmp/mas.pid
kill_process "/tmp/mas.pid"
ps aux | grep "jboss" | grep -v "grep" | awk '{print $2}' > /tmp/jboss.pid
kill_process "/tmp/jboss.pid"
ps aux | grep "snmp" | grep -v "grep" | awk '{print $2}' > /tmp/snmp.pid
kill_process "/tmp/snmp.pid"
ps -a | grep cef | grep -v cef_monitor | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep mas | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep jboss | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
ps -a | grep snmp | grep -v grep | awk '{printf("kill -9 %sn",$1)}' | sh
比如我想杀一个进程是/usr/libexec/openssh/sftp-server 但是有很多个
我的命令是 killall sftp_server 就可以了 我应该如何把这个放到上面的shell里.这个我是在crontab设置的 有没有可以隐藏的呀 我不想被别人发现 呵呵 或者有没有别的办法 杀进程 谢谢各位高手了
|
这个貌似正常途径是是做不到的?! 给点自己的想法看看:
1.有关隐藏crontab里面item的问题?
你可以自己hack下crontab的源代码,然后隐藏掉你指定的item或者带有某些关键字的item,这样做,要保证crontab本上的功能不要破坏,否则容易被人发现?比较高明的管理员可能对系统的重要文件都做了checksum,简单的用你自己编译出来的crontab替换也可能被发现? 如果要求不高,可以这样试试
2.有关隐藏进程的问题?
你可以自己hook某些和文件系统相关的系统调用,将你期望的进程在执行ps,top等进程有关命令的时侯不要显示出来?
这些方法都可能需要编程? 期望哪位高手有简单的办法
1.有关隐藏crontab里面item的问题?
你可以自己hack下crontab的源代码,然后隐藏掉你指定的item或者带有某些关键字的item,这样做,要保证crontab本上的功能不要破坏,否则容易被人发现?比较高明的管理员可能对系统的重要文件都做了checksum,简单的用你自己编译出来的crontab替换也可能被发现? 如果要求不高,可以这样试试
2.有关隐藏进程的问题?
你可以自己hook某些和文件系统相关的系统调用,将你期望的进程在执行ps,top等进程有关命令的时侯不要显示出来?
这些方法都可能需要编程? 期望哪位高手有简单的办法
|
在自己写一个shell,用vi 新建一个kall.sh的shell文件,然后在里面加入一行 killall sftp_server即可阿!
你是要加到shell,还是要加到crontab中? 我猜你好像是要加入到crontab中
你是要加到shell,还是要加到crontab中? 我猜你好像是要加入到crontab中
|
kill -9 pid
ps都能看到的啦,怎么会看不到呢
ps都能看到的啦,怎么会看不到呢
|
使用killall 就可以了
killall能根据进程名把进程都kill掉。
killall能根据进程名把进程都kill掉。