庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>SCO UNIX>应用技术>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

在Unix系统中利用程序实现Kill命令

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   


在正常情况下,一般先通过 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下编译通过,可直接在该系统中编译运行。

上一篇:sco unix5.05系统intel pro100+网卡安装心得    下一篇:SCO UNIX系统故障特征、分析及解决  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿