Linux 命令(6)-进程管理

115 阅读2分钟

进程管理

1. `ps`、`top` 进程的观察

    ```bash
    [root@localhost ~]# ps 参数

    # -A 列出所有的进程,与-e有同样的作用
    # -a 列出不和本终端有关的所有进程
    # -w 显示加宽可以显示更多内容
    # -u 显示有效使用者相关的进程
    # aux 显示所有包含其他使用者的进程
    # 使用aux参数的输出:
    # USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
        # USER 进程拥有者
        # PID pid
        # %CPU 占用的CPU使用率
        # %MEM 占用内存使用率
        # VSZ 占用的虚拟内存大小
        # RSS 占用内存大小
        # TTY 运行的终端的号码
        # STAT 进程状态
            # D:不可中断
            # R:运行中
            # S:休眠
            # T:暂停
            # Z:僵尸进程
            # W:没有足够的内存可分配
            # <:高优先级的进程
            # N:低优先级的进程
        # START 进程开始时间
        # TIME 累计使用CPU的时间
        # COMMAND 执行的命令
    ```

2. `kill`、`killall` 进程的终止

    > `kill`信号代码
    ```bash
    1) SIGHUP 重启   2) SIGINT       3) SIGQUIT      4) SIGILL          5) SIGTRAP
    6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL 强行杀掉 10) SIGUSR1
    11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM         15) SIGTERM 正常结束
    16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP         20) SIGTSTP
    21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU         25) SIGXFSZ
    26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO           30) SIGPWR
    31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2      37) SIGRTMIN+3
    38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7      42) SIGRTMIN+8
    43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12     47) SIGRTMIN+13
    48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13     52) SIGRTMAX-12
    53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8      57) SIGRTMAX-7
    58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3      62) SIGRTMAX-2
    63) SIGRTMAX-1  64) SIGRTMAX
    ```
    ```bash
    # 停止系统中所有httpd进程
    [root@localhost ~]# killall httpd
    ```

3. `lsof` 查询进程打开的文件

    ```bash
    [root@localhost ~]# lsof [options] filename
    # 常用的参数列表
    # lsof filename 显示打开指定文件的进程
    # lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
    # lsof -u username 显示所属于user进程打开的文件
    # lsof -g gid 显示归属于gid的进程情况
    # lsof +d /DIR/ 显示目录下被进程打开的文件
    # lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间较长
    # lsof -d FD 显示指定文件描述符的进程
    # lsof -n 不将IP转换为hostname
    # lsof -i 用一显示符合条件的进程情况
    # lsof -i[46] [protocol][@hostname][hostaddr][:service|port]
    #       46 指IPv4或IPv6
    #       protocol 指TCP或UDP
    #       hostname 指主机名
    #       hostaddr 是IPv4地址
    #       service 是/etc/service中的service name
    #       port 是端口号
    ```

4. `nice`、`renice` 进程优先级调整