linux怎么查看kill源码_linux kill kill all - CSDN
  • Linux c源码之kill源码

    2015-02-03 17:54:48
    #include #include #include #include #include int main(int argc, char **argv) { int sig = SIGTERM; //发送退出信号 /* Termination (ANSI). */ int result = 0;... if(argc >= 2 && argv
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    
    #include <sys/types.h>
    #include <signal.h>
    
    int main(int argc, char **argv)
    {
    	int sig = SIGTERM; //发送退出信号 /* Termination (ANSI).  */
    	int result = 0;
    
    	argc--;
    	argv++;
    
    	if(argc >= 2 && argv[0][0] == '-'){
    		sig = atoi(argv[0] + 1);
    		argc--;
    		argv++;
    	}
    
    	while(argc > 0){
    		int pid = atoi(argv[0]);
    		int err = kill(pid, sig);
    		if (err < 0) {
    			result = err;
    			fprintf(stderr, "could not kill pid %d: %s\n", pid, strerror(errno));
    		}
    
    		argc--;
    		argv++;
    	}
    
    	return result;
    }
    

    展开全文
  • linux源码kill.c

    2014-06-18 23:35:51
    #include #include #include #include #include int main(int argc, char **argv) { int sig = SIGTERM; int result = 0; argc--; argv++; if(argc >= 2 && argv[0][0] == '-'){
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <sys/types.h>
    #include <signal.h>
    int main(int argc, char **argv)
    {
        int sig = SIGTERM;
        int result = 0;   
        argc--;
        argv++;
        if(argc >= 2 && argv[0][0] == '-'){
            sig = atoi(argv[0] + 1);
            argc--;
            argv++;
        }
        while(argc > 0){
            int pid = atoi(argv[0]);
            int err = kill(pid, sig);
            if (err < 0) {
                result = err;
                fprintf(stderr, "could not kill pid %d: %s\n", pid, strerror(errno));
            }          
            argc--;
            argv++;
        }  
        return result;
    }
    

    展开全文
  • Linux系统命令源码包,包含Top,Free,ps,kill等命令
  • Linux 常用命令脚本源码查看方法总结 下载相关软件包 以32位Ubuntu14.04,获取ls命令的源码为例,能够使用例如以下的方法下载源码: 1)使用which命令查看ls命令的位置,例如以下: which ls # 输出:/bin/ls...

    Linux 常用命令脚本源码查看方法总结

    1. 下载相关软件包
      以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:
      1)使用which命令查看ls命令的位置,例如以下:
      which ls # 输出:/bin/ls
      2)使用dpkg命令查询ls命令所属的包。例如以下:
      dpkg -S /bin/ls # 输出:coreutils: /bin/ls
      因此可以下载coreutil软件包查看源码:http://ftp.gnu.org/gnu/coreutils/
      当然一些命令也可能在其它软件包下,如http://ftp.gnu.org/gnu/bash/
      但是在查找 ps top命令的源码时,软件包为procps,http://ftp.gnu.org/gnu/目录下不存在

    那么procps软件包为什么这么特别呢?
    procps是与系统进程相关的软件包,专门用于监视和终止系统进程的,包含以下命令:
    free,top,kill, pgrep, pkill, ps, skill, snice, sysctl, tload, uptime, vmstat, w 和 watch

    free:查看系统进程总内存,已用内存,空闲内存,内核共享内存,缓存
    这里写图片描述

    top:实时查看进程运行状态(系统运行时间,负载(队列长度),进程运行情况,CPU运行状态)
    这里写图片描述
    ps:查看同一终端下的所有进程,进程ID、当前终端、命令行(当然也可以指定用户,指定进程名等)
    这里写图片描述

    kill:向进程发出信号,可以指定信号类型
    这里写图片描述

    sysctl:系统信息查看及修改

    展开全文
  • linux ps命令源码

    2020-07-30 23:30:57
    linux ps命令的源码;其实就是遍历/proc目录;供参考。
  • Linux下nginx源码包安装

    2016-05-23 20:52:35
    操作系统要求:首先需要一个内核为linux2.6及以上版本的操作系统,可以用uname -a命令来查询linux内核版本。使用nginx的所需要的软件:1)GCC编译器 GCC可以用来编译C语言程序,可以使用yum方式安装GCC,如yum ...

    一、安装前的准备

    以下准备工作理论部分看不懂不要紧,只要记住安装几个包准备几个目录就行。

    操作系统要求

    首先需要一个内核为linux2.6及以上版本的操作系统,可以用uname -a命令来查询linux内核版本。

    使用nginx的所需要的软件

    1)GCC编译器
    GCC可以用来编译C语言程序,可以使用yum方式安装GCC,如

    yum install -y gcc

    而nginx中也会用到C++,所以这时候需要用到G++编译器。

      yum install -y gcc-c++

    2)PCRE库
    PCRE是由Philip Hazel开发的函数库,该库支持正则表达式。如果我们在配 置文件 nginx.conf 里使用了正则表达式,那么编译nginx时就必须把PCRE库 编译进nginx 。

     yum install -y pcre pcre-devel

    3)zlib库
    zlib库对于HTTP包内容做gzip格式压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进nginx。

    yum install -y zlib zlib-devel

    4)Open SSL
    如果我们服务器不只要支持HTTP,还需要在SSL协议传输http,那么就需要OpenSSL了。

    yum install -y openssl openssl-devel

    磁盘目录

    要使用nginx,还需要在linux文件系统上准备以下目录。
    1) nginx源代码存放目录
    该目录放置nginx源码文件,已及第三方或我们自己写的模块源代码文件。
    2)nginx编译阶段产生的中间文件存放的目录
    该目录用于放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件。默认情况下,configure命令会将该目录命名为objs,并放在nginx源代码目录下。
    3)部署目录
    该目录存放实际nginx服务运行期间所需要的二进制文件,配置文件等。默认情况下该目录为,/usr/local/nginx
    4)日志文件存放目录
    日志文件通常比较大,当研究,当研究nginx底层架构时,需要打开debug级别的日志,这个级别的日志非常详细,会导致日志文件大小增长的极快,需要预先分配一个拥有更大磁盘空间的目录。

    Linux内核参数优化

    这里面说一种最常用的参数配置,需要修改 /etc/sysctl.congf来更改内核参数,再然后执行sysctl -p使参数生效,永久生效。

    fs.file-max = 999999
    # 表示进程可以同时打开最大的句柄数
    net.ipv4.tcp_tw_reuse = 1
    # 这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP连接。
    net.ipv4.tcp_keepalive_time = 600
    这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。
    net.ipv4.tcp_fin_timeout = 30
    # 这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
    net.ipv4.tcp_max_tw_buckets = 5000
    # 表示操作系统允许TIME-WAIT套接字(socket)数量的最大值
    net.ipv4.ip_local_port_range = 1024 61000
    # 这个参数表示定义在UDP和TCP连接中本地(不包括连接远端)端口的取值范围
    net.ipv4.tcp_rmem = 4096 32768 262142
    # 这个参数定义了TCP接收缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值
    net.ipv4.tcp_wmem = 4096 32768 262142
    # 这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值
    net.core.netdev_max_backlog = 8096
    # 当网卡接收数据包的速度大于内核处理速度时,会有一个队列保存这些数据包,这个参数表示该队列的最大值。
    net.core.rmem_default = 262144
    # 这个参数表示内核套接字(socket)接收缓存区默认大小
    net.core.wmem_default = 262144
    # 这个参数表示内核套接字(socket)发送缓存区默认大小
    net.core.rmem_max = 2097152
    # 这个参数表示套接字(socket)接收缓存区的最大大小
    net.core.wmem_max = 2097152
    # 这个参数表示套接字(socket)发送缓存区的最大大小
    net.ipv4.tcp_syncookies = 1
    

    获取nginx源码

    可以在nginx官网获取nginx源码包。将下载的nginx源码压缩包放置在准备好的nginx源代码目录里(Windows下的同学可以通过FileZillaClient将源码包从Windows下挪到linux系统中),然后解压。

    tar -zxvf nginx-1.8.1.tar.gz 
    #我下的是1.8.1版本的nginx,大家可以选其他的版本

    二、编译安装Nginx

    其实编译安装nginx超级简单,三条命令,最简单的编译方式就能安装了。

    ./configure
    make
    make install

    configure 命令至关重要大家可以自己在这儿学习尝试。

    三、Nginx的命令行控制

    在linux中,需要使用命令行来控制nginx服务器的启动与停止、重载配置文件、回滚日志文件、平滑升级等行为。默认情况下,nginx被安装在目录/usr/local/nginx/中,其二进制文件路径为/usr/local/ngix/sbin/nginx,配置文件路径/usr/local/nginx/conf/nginx.conf。当然,可以通过configure执行时将他们装在不同的目录。
    1) 默认启动方式
    直接执行nginx二进制程序。

    /usr/local/nginx/sbin/nginx

    这时,会读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf。
    2) 另行制定配置文件的启动方式
    使用-c参数指定配置文件。如:

    /usr/local/nginx/sbin/nginx -c /tmp/nginx.conf

    这时,会读取-c参数后指定的nginx.conf配置文件来启动nginx。
    3) 另行指定安装目录的启动方式
    使用-p参数指定nginx的安装目录。如:

    /usr/local/nginx/sbin/nginx -p /usr/local/nginx

    4) 另行指定全局配置项的启动方式
    可以通过-g参数临时指定一下全局配置项,以使新的配置项生效。如:

    /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid"

    上面这行命令意味着会把pid文件写到/var/nginx/test.pid中。
    5) 测试配置信息是否有错误
    在不启动nginx的情况下,使用-t参数仅测试配置文件是否有错误。

    /usr/local/nginx/sbin/nginx -t

    执行结果显示配置是否正确。
    6) 在测试配置阶段不输出信息
    测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕。

    /usr/local/nginx/sbin/nginx -t -q

    7)显示版本信息
    使用-v参数显示nginx的版本信息
    /usr/local/nginx/sbin/nginx -v
    8)显示编译阶段的参数
    使用-V参数除了可以显示nginx版本信息之外,还可以显示配置编译阶段的信息,如GCC编译器的版本、操作系统版本、执行configure时的参数等

    /usr/local/nginx/sbin/nginx -V

    9)快速停止服务
    使用-s stop可以强制停止nginx服务。-s参数其实是告诉nginx程序向正在运行的nginx服务发送信号量,nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的master进程发送TERM信号来关闭nginx服务

    /usr/local/nginx/sbin/nginx -s stop

    实际上,如果通过kill命令直接向nginx master进程发送TERM或者INT信号,效果是一样的。例如,先通过ps命令来查看nginx master 的进程ID:

    ps -ef | grep nginx

    接下来直接通过kill命令来发送信号

    kill -s SIGTERM ***

    或者:

    kill -s SIGINT ***

    10) “优雅”的停止服务
    如果希望nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit 参数来停止服务。如:

    /usr/local/nginx/sbin/nginx -s quit

    该命令与快速停止nginx服务是有区别的。当快速停止服务时,worker进程与master进程在收听到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连续,然后把当前正在处理的连接全部处理完,最后再退出进程。
    11)使运行中的nginx重读配置并生效
    使用-s reload 参数可以使运行中的nginx服务重新加载nginx.conf文件。如:

    /usr/local/nginx/sbin/nginx -s reload

    12)日志文件回滚
    使用 -s reopen 参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其它目录中进行备份,再重新打开时就会生成新的日志文件。这个功能使得日志文件不至于过大。如:

    /usr/local/nginx/sbin/nginx -s reopen
    展开全文
  • Linux 内核源码查看工具 vim+ctags+cscope
  • kill系统调用以前一直认为只是用来杀死某个进程的,看了源码纠正自己的错误认识。源码如下:
  • 查找Linux命令源码

    2019-07-29 09:13:20
    文章目录查找Linux命令源码查看命令绝对路径查看命令所属包在源码库中搜索所属包名 查找Linux命令源码 以CentOS为例 查看命令绝对路径 which kill /bin/kill 查看命令所属包 rpm -qf /bin/kill util-linux-ng-...
  • Linux下源码安装PHP

    2018-07-06 10:45:12
    1.下载PHP源码文件通过wget下载源码PHP版本以及下载地址可以去 http://php.net/downloads.php 选择,这里我们以7.1.19来演示wget -O php-7.1.19.tar.gz http://cn2.php.net/get/php-7.1.19.tar.gz/from/this/mirror...
  • 6.1.3 linux内核管理 :内核进程 : kill杀死 kill的信号 kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV ...
  • Linux kill 杀死指定进程
  • linux下源码安装VNC

    2019-06-19 12:48:57
    linux下源码安装VNC ...
  • linux MySQL源码包的安装 linux MySQL源码包的安装 实验环境 VMware 6.5.2 +redhatEnterprise 5 AS 实验目的 初步涉及源码包的安装,以简单实现其功能为目的,不对原理进行深层讨论 内核版本: ...
  • 使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关...
  • kill 作用:向进程发送信号。 注意: kill命令只是用来向进程发送信号的,而不是直接杀死进程。 kill命令的一般使用格式: kill [参数] 进程号 进程号可用ps命令查看 kill的参数: -l 列出全部的信号...
  • 学习一下linux kernel namespace的代码还是很有必要的,让你对docker容器的namespace隔离有更深的认识。
  • LINUX下的系统调用 注: 我这里看到源码是linux 2.6.11版本的源码; 系统调用是什么东西,这个才能开始后续工作。 系统调用举个例子更容易理解,假如你想找个“铁饭碗”,你是不是得托人给领导送礼呀。你个平头...
  • 来查找如查看ffmpeg-3.0的源码: 1). 在终端进入源码目录,输入"ctags -R *" // 会在当前目录生成索引表文件, 文件名为tags 2). 在终端使用,需确保终端当前工作目录是在索引表文件ta
  • 参考kernel msm-4.4源码 进程和进程间通信  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。不同进程间,内存资源相互独立,...
1 2 3 4 5 ... 20
收藏数 30,106
精华内容 12,042
关键字:

linux怎么查看kill源码