Linux--kill项目

本文深入解析Linux下的kill命令,介绍其不同格式与信号宏定义,通过代码示例展示如何根据用户输入发送不同类型的信号来控制进程。适用于对Linux系统管理和进程控制感兴趣的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.我们首先要知道kill命令有几种格式:
kill pid ==> 默认 15
kill -9 pid ==> 强制关闭 9
kill -stop pid ==>挂起进程 19
后面的数字其实就是一些信号的宏定义,可以在/usr/include/bits/signum.h下面查询。
在这里插入图片描述
没有截全,可以自行查询。
根据命令格式,主函数中要保留两个参数的位置 ,所以定义成:

int main(int argc,char *argv[]);

思路:
1.判断参数是否够用,不够的话提示再次输入PID。
2.判断第二个参数是什么并对kill的功能实现。

  1 #include <stdio.h>
  2 #include <unistd.h>
  3 #include <stdlib.h>
  4 #include <string.h>
  5 #include <assert.h>
  6 
  7 int main(int argc,char *argv[])
  8 {
  		//1
  9     if(argc < 2)
 10     {
 11         printf("please input process's pid again\n");
 12         exit(0);
 13     }
 14 	//默认的方式就是15
 15     int sigtype = 15;
 16     int i = 1;//kill标识在0号下表,所以从1开始即可
 17     for(;i < argc;++i)
 18     {	//2
 19         if(i == 1)
 20         {
 21             if(strncmp(argv[1],"-9",2) == 0)
 22             {
 23                 sigtype = 9;
 24                 continue;
 25             }
 26             if(strncmp(argv[1],"-stop",5) == 0)
 27             {
 28                 sigtype = 19;
 29                 continue;
 30             }
 31         }
 32         int pid = 0;
 33         sscanf(argv[i],"%d",&pid);
 34         if(-1 == kill(pid,sigtype))//先执行 kill,再判断
 35         {
 36             perror("kill error\n");
 37         }
 38     }
 39     exit(0);
 40 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值