• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[转贴]在Unix系统中利用程序实现Kill命令

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
[code:1:08c75f8a30]
建行滨州市分行科技科 张道新 赵国明 

在正常情况下,一般先通过 Unix 系统的 ps命令,找到相关进程的进程号(pid),然后用 kill 9 pid 终止这些进程。这些操作对计算机专业人员很简单,但对业务人员来说,却是比较复杂的操作。如果能利用一段程序,业务人员只需要输入终端号,即可杀死该终端的所有进程并重新激活,就可以简化这种操作,提高工作效率。本文简单介绍这种程序的实现方法。
 
程序的功能是根据终端号杀死进程并激活终端,操作上只要在另一台终端上执行 killtty ttyname即可,其中ttyname 是需要激活的终端号。程序的实现原理是根据输入的终端号,找到该终端运行的所有进程的进程号,并把这些进程号写入文件。然后由大到小依次读出所有的进程号,并执行Unix的系统命令 kill(pid,SIGKILL),将该进程杀死。程序的源代码如下: 
#include<stdio.h> 
#include<sys/types.h> 
#include<signal.h> 
main(argc,argv) 
int argc; 
char *argv[]; 

FILE *fp; 
char fname[50],pscmd[50],ttyname[10]; 
if(argc< 2){ 
printf(“usage:%s /dev/ttyname|ttyname|name}\n”,argv[0]); 
exit(0); 

strcpy(fname,“/tmp/psout”); 
strcat(fname,argv[1]); 
if(!strncmp(argv[1],“/dev/”,5)){ 
strncpy(ttyname,argv[1]+5,9); 

else if(!strncmp(argv[1],“tty”,3)) 
strcpy(ttyname,argv[1]); 
else{ 
strcpy(ttyname,“tty”); 
strcat(ttyname,argv[1]); 

sprintf(pscmd,“ps -o \"pid=\“-t %s>%s”,ttyname,fname); 
if(system(pscmd)<0){ 
exit(-1); 

kill_pid(fname); 

kill_pid(filename) 
char *filename; 

FILE *fp; 
char ch,pid[10]; 
int *ipid; 
ipid=(int *)(malloc(sizeof(int))); 
if((fp=fopen(filename,“r”))==NULL){ 
exit(-1); 

while(fgets(pid,20,fp)!=NULL){ 
*ipid=atoi(pid); 
ipid++; 

fclose(fp); 
while(--ipid){ 
kill(*ipid,SIGKILL); 


上述程序中有关Unix的系统调用问题,请参考有关的技术资料,这里不再赘述。该程序在SCO OpenServer 5.04下编译通过,可直接在该系统中编译运行。 [/code:1:08c75f8a30]

 萝卡 回复于:2003-11-09 11:55:14
#cat killtty 
echo "请输入终端号\c"
read killtty
ps -t$killtty|gerp -v PID |sort -r |awk '{print "kill -9  "$1}' |sh

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网