Linux基础教程学习笔记7

Linux基础教程学习笔记7——监视和管理进程

1、查看进程

某个进程的基础上生成了另一个进程,则它们为父子进程; 
[root@linuxidc ~]# pstree

├─sshd───sshd───bash───pstree

[root@linuxidc ~]# ps
  PID TTY          TIME CMD
 2797 pts/0    00:00:00 bash
 2874 pts/0    00:00:00 ps

查看所有进程,x表示显示不属于任何终端的子进程,即tty显示为?,ps -ef等同于ps aux,不同的系统风格而已:
[root@linuxidc ~]# ps aux
USER      PID %CPU %MEM    VSZ  RSS TTY(终端)      STAT(状态) START  TIME COMMAND
root        1  0.2  0.7  53676  7580 ?        Ss  17:49  0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root        2  0.0  0.0      0    0 ?        S    17:49  0:00 [kthreadd]
root        3  0.0  0.0      0    0 ?        S    17:49  0:00 [ksoftirqd/0]

如果只显示某几列的值,则可以使用以下命令,比如只想显示PID,CPU,MEM:
[root@linuxidc ~]# ps -ex -o pid,%cpu,%mem --noheader|head
    1  0.1  0.7
    2  0.0  0.0
    3  0.0  0.0
    5  0.0  0.0
    6  0.0  0.0
    7  0.0  0.0
    8  0.0  0.0
    9  0.0  0.0
  10  0.0  0.0
  11  0.0  0.0

动态显示系统的进程信息,使用top命令,可以在top命令后面加上时间选项,调整进程显示频率,如top 1:

top - 18:22:31 up 33 min,  2 users,  load average: 0.00, 0.01, 0.06
Tasks: 255 total,  2 running, 253 sleeping,  0 stopped,  0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  1010860 total,  590376 used,  420484 free,      884 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.  218452 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM    TIME+ COMMAND                                                           
 3249 root      20  0  123776  1764  1156 R  0.3  0.2  0:00.08 top                                                             
    1 root      20  0  53676  7580  2524 S  0.0  0.7  0:03.04 systemd

2、查看进程的信号
常用的信号为:9——杀死进程,15——终止进程;2——相当于ctrl+c;使用方式:kill -9 PID,kill如果不指定信号值,则默认指15

[root@linuxidc ~]# kill -l
 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1
11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM
16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP
21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ
26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR
31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3
38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8
43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13
48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12
53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7
58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2
63) SIGRTMAX-164) SIGRTMAX

可以使用pgrep和pidof直接查看进程PID,两个命令的区别是pidof是精确匹配,pgrep支持模糊匹配:
[root@linuxidc ~]# pgrep ssh
1621
2793

ctrl+z可以让进程在后台运行,通过jobs命令可以查看后台运行的进程,bg 后台PID和fg PID可以让进程在后台或者前台运行,要杀死后台运行的进程,可以使用命令:kill -9 %1(后台运行的PID):

通过使用nohup命令可以让进程在后台运行,即使终端关闭,进程也会继续运行:
[root@linuxidc ~]# nohup firefox %> /dev/null &

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16690.html