国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

在Unix系統(tǒng)中利用程序?qū)崿F(xiàn)Kill命令

瀏覽:163日期:2024-07-01 16:27:25

在正常情況下,一般先通過 Unix 系統(tǒng)的 ps命令,找到相關(guān)進(jìn)程的進(jìn)程號(pid),然后用 kill 9 pid 終止這些進(jìn)程。這些操作對計(jì)算機(jī)專業(yè)人員很簡單,但對業(yè)務(wù)人員來說,卻是比較復(fù)雜的操作。如果能利用一段程序,業(yè)務(wù)人員只需要輸入終端號,即可殺死該終端的所有進(jìn)程并重新激活,就可以簡化這種操作,提高工作效率。本文簡單介紹這種程序的實(shí)現(xiàn)方法。 程序的功能是根據(jù)終端號殺死進(jìn)程并激活終端,操作上只要在另一臺終端上執(zhí)行 killtty ttyname即可,其中ttyname 是需要激活的終端號。程序的實(shí)現(xiàn)原理是根據(jù)輸入的終端號,找到該終端運(yùn)行的所有進(jìn)程的進(jìn)程號,并把這些進(jìn)程號寫入文件。然后由大到小依次讀出所有的進(jìn)程號,并執(zhí)行Unix的系統(tǒng)命令 kill(pid,SIGKILL),將該進(jìn)程殺死。程序的源代碼如下: #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); } } 上述程序中有關(guān)Unix的系統(tǒng)調(diào)用問題,請參考有關(guān)的技術(shù)資料,這里不再贅述。該程序在SCO OpenServer 5.04下編譯通過,可直接在該系統(tǒng)中編譯運(yùn)行。

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 白河县| 内乡县| 梁山县| 瑞丽市| 西乡县| 饶阳县| 衡水市| 灵石县| 祁阳县| 体育| 凉山| 会理县| 合江县| 封开县| 永新县| 嘉义县| 营山县| 临猗县| 崇信县| 鸡东县| 佛坪县| 汾西县| 肥东县| 德阳市| 五常市| 保山市| 紫金县| 名山县| 祁阳县| 肇庆市| 当涂县| 金川县| 应城市| 文水县| 通渭县| 九龙县| 工布江达县| 兴义市| 合阳县| 卫辉市| 昔阳县|