参考:
Shell中for循环的几个常用写法
Linux命令去重统计排序(awk命令去重,sort, uniq命令去重统计)
系统日志监控Shell脚本,程序关闭和启动
ps -axu | grep yourprogd | awk '{print $2}' |xargs kill -9
Linux 下常用的bash脚本:
编写的一些Linux下常用的bash脚本。
- ps.sh
该脚本的存放路径,配置在PATH下,可以在任何路径下调用。
#!/usr/bin/bash
#ps.sh
app=$1
echo "ps -ef | grep -v grep |grep -v ps.sh | grep $app"
ps -ef | grep -v grep |grep -v ps.sh | grep $app
//示例:
[~/opt/redis/bin]# ps.sh redis-server
ps -ef | grep -v grep |grep -v ps.sh |grep redis-server
root 13197 1 0 Apr04 ? 00:33:52 ./redis-server *:6379
#!/usr/bin/bash
#pskill.sh
APP=$1
echo "*********************************************"
echo "ps -ef | grep "$APP" | grep -v grep | grep -v pskill.sh"
echo "-------------------------------"
ps -ef | grep "$APP" | grep -v grep | grep -v pskill.sh
echo "********************************************"
echo "ps -ef | grep "$APP" | grep -v grep | grep -v pskill.sh | awk '{ print \$2}'"
echo "-------------------------------"
ps -ef | grep "$APP" | grep -v grep | grep -v pskill.sh | awk '{ print $2}'
echo "********************************************"
APPID=`ps -ef | grep "$APP" | grep -v grep | grep -v pskill.sh | awk '{ print $2}'`
for pid in $APPID
do
echo "kill -9 $pid"
kill -9 $pid
done
echo "*******************************************"
//测试结果:
[~/mysh]# ./pskill.sh run
*********************************************
ps -ef | grep run | grep -v grep | grep -v pskill.sh
-------------------------------
root 31507 26857 0 20:49 pts/2 00:00:00 ./run
root 31514 31143 0 20:49 pts/7 00:00:00 ./run
********************************************
ps -ef | grep run | grep -v grep | grep -v pskill.sh | awk '{ print $2}'
-------------------------------
31507
31514
********************************************
kill -9 31507
kill -9 31514
********************************************
- 测试程序
/*
* test.cpp
* g++ -orun test.cpp
*/
#include <unistd.h>
#include <stdio.h>
int main(){
while(1){
sleep(5);
printf("Test ...\n");
}
return 0;
}