如何在Linux中管理进程

进程是Linux操作系统用来表示正在运行的程序的抽象。 每个Linux进程都包含一个地址空间和服务器内核中的一组数据结构。 地址空间包含进程运行时的代码和库,进程变量,其堆栈以及进程运行时内核所需的其他信息。

  1. PID 是内核分配给每个进程的唯一的命名标识号。 PID 按照创建过程的顺序分配。
  2. UID 是创建它的用户的标识号。
  3. EUID 是“有效”用户ID,用于确定在任何给定时刻有权访问哪些资源和过程文件。 通常,除了setuid程序之外,UID和EUID相同。
  4. GID 它是一组过程标识号。 EGID链接到GID的方式与EUID链接到UID的方式相同。 简而言之,一个过程可以同时是多个组的成员。

下面列出了一些用于管理Linux进程的基本命令:

1。 ps 是用于监视进程的主要Linux sysadmin命令之一。 尽管各种PS版本的参数和显示方式有所不同,但它们都提供相同的信息。 ps命令输出可以显示进程的PID,UID,优先级和控制终端。 它还提供有关消耗了多少CPU时间,进程正在使用多少内存以及其当前状态(状态)的信息。

流程批准代码:

  • [R -运行-进程正在运行/可以执行。
  • d -不间断的睡眠来源
  • 小号 -睡眠中断-进程正在等待某些事件完成
  • Ť -追踪或停止
  • ž -Zombie是一个不存在的进程,是一个中断的进程,但仍挂在内核表进程中,因为该进程的父级尚未设置该进程的退出状态。

这是示例输出 ps辅助 在CentOS 7 VPS上:

[[email protected] ~]# ps aux                                                                                                                                     
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND                                                                                      
root         1  0.0  0.2 190656  2116 ?        Ss   Mar16   1:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21                           
root         2  0.0  0.0      0     0 ?        S    Mar16   0:00 [kthreadd]                                                                                   
root         3  0.0  0.0      0     0 ?        S    Mar16   0:38 [ksoftirqd/0]                                                                                
root         5  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kworker/0:0H]                                                                               
root         7  0.0  0.0      0     0 ?        S    Mar16   0:00 [migration/0]                                                                                
root         8  0.0  0.0      0     0 ?        S    Mar16   0:00 [rcu_bh]                                                                                     
root         9  0.0  0.0      0     0 ?        S    Mar16   4:57 [rcu_sched]                                                                                  
root        10  0.0  0.0      0     0 ?        S    Mar16   0:03 [watchdog/0]                                                                                 
root        11  0.0  0.0      0     0 ?        S    Mar16   0:02 [watchdog/1]                                                                                 
root        12  0.0  0.0      0     0 ?        S    Mar16   0:01 [migration/1]                                                                                
root        13  0.0  0.0      0     0 ?        S    Mar16   0:52 [ksoftirqd/1]                                                                                
root        17  0.0  0.0      0     0 ?        S<   Mar16   0:00 [khelper]                                                                                    
root        18  0.0  0.0      0     0 ?        S    Mar16   0:00 [kdevtmpfs]                                                                                  
root        19  0.0  0.0      0     0 ?        S<   Mar16   0:00 [netns]                                                                                      
root        20  0.0  0.0      0     0 ?        S    Mar16   0:00 [khungtaskd]                                                                                 
root        21  0.0  0.0      0     0 ?        S<   Mar16   0:00 [writeback]                                                                                  
root        22  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kintegrityd]                                                                                
root        23  0.0  0.0      0     0 ?        S<   Mar16   0:00 [bioset]                                                                                     
root        24  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kblockd]                                                                                    
root        25  0.0  0.0      0     0 ?        S<   Mar16   0:00 [md]                                                                                         
root        31  0.0  0.0      0     0 ?        S    Mar16   4:51 [kswapd0]                                                                                    
root        32  0.0  0.0      0     0 ?        SN   Mar16   0:00 [ksmd]                                                                                       
root        33  0.0  0.0      0     0 ?        SN   Mar16   0:02 [khugepaged]                                                                                 
root        34  0.0  0.0      0     0 ?        S    Mar16   0:00 [fsnotify_mark]                                                                              
root        35  0.0  0.0      0     0 ?        S<   Mar16   0:00 [crypto]                                                                                     
root        43  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kthrotld]                                                                                   
root        44  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kmpath_rdacd]                                                                               
root        46  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kpsmoused]                                                                                  
root        47  0.0  0.0      0     0 ?        S<   Mar16   0:00 [ipv6_addrconf]                                                                              
root        66  0.0  0.0      0     0 ?        S<   Mar16   0:00 [deferwq]                                                                                    
root        99  0.0  0.0      0     0 ?        S    Mar16   0:00 [kauditd]                                                                                    
root       222  0.0  0.0      0     0 ?        S<   Mar16   0:00 [ata_sff] 
...

输出的简要说明ps辅助‘:

  • USER-当前进程的用户名
  • PID-进程ID。
  • CPU百分比-特定进程的CPU利用率百分比。
  • %MEM-特定进程使用的实际内存的百分比。
  • VSZ-虚拟进程大小
  • RSS-驻留大小(内存中的页面数)
  • TTY-控制终端ID
  • STAT-流程的当前状态
  • START-命令开始时间
  • TIME是进程消耗CPU的时间。
  • COMMAND-名称和命令行参数

2。 pstree -该命令以树的形式显示进程:

[[email protected] ~]# pstree                                                                                                                                     
systemd─┬─NetworkManager───2*[{NetworkManager}]                                                                                                               
        ├─agetty                                                                                                                                              
        ├─atd                                                                                                                                                 
        ├─auditd───{auditd}                                                                                                                                   
        ├─core───6*[{core}]                                                                                                                                   
        ├─core───3*[{core}]                                                                                                                                   
        ├─crond───freshclam-sleep───sleep                                                                                                                     
        ├─crond                                                                                                                                               
        ├─dbus-daemon                                                                                                                                         
        ├─fail2ban-server───8*[{fail2ban-server}]                                                                                                             
        ├─firewalld───{firewalld}                                                                                                                             
        ├─httpd─┬─10*[httpd]                                                                                                                                  
        │       └─httpd───httpd───php                                                                                                                         
        ├─ihttpd───shellinaboxd───shellinaboxd─┬─ispmgr.6fc55a51───bash───top                                                                                 
        │                                      └─ispmgr.6fc55a51───bash───pstree                                                                              
        ├─irqbalance                                                                                                                                          
        ├─mysqld_safe───mysqld───28*[{mysqld}]                                                                                                                
        ├─named───4*[{named}]                                                                                                                                 
        ├─nginx───2*[nginx]                                                                                                                                   
        ├─ntpd                                                                                                                                                
        ├─polkitd───5*[{polkitd}]                                                                                                                             
        ├─rsyslogd───2*[{rsyslogd}]                                                                                                                           
        ├─sshd───sshd───sshd───sftp-server                                                                                                                    
        ├─systemd-journal                                                                                                                                     
        ├─systemd-logind                                                                                                                                      
        ├─systemd-udevd                                                                                                                                       
        └─tuned───4*[{tuned}]

3。 最佳 -找出服务器上正在运行哪些进程的另一种方法:

top - 12:07:24 up 6 days,  7:30,  1 user,  load average: 0.61, 0.32, 0.22                                                                                     
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie                                                                                          
%Cpu(s): 28.1 us,  4.5 sy,  0.0 ni, 65.5 id,  1.5 wa,  0.0 hi,  0.3 si,  0.0 st                                                                               
KiB Mem :  1016388 total,   308200 free,   369696 used,   338492 buff/cache                                                                                   
KiB Swap:  2097148 total,  1704100 free,   393048 used.   439256 avail Mem                                                                                    

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                  
25476 mysql     20   0 1512488 117216   3604 S   2.3 11.5  64:27.15 mysqld                                                                                    
  870 apache    20   0   67120   8272   1772 S   1.0  0.8  21:28.85 nginx                                                                                     
 4083 andreyex  20   0  338368  91508  10040 S   0.7  9.0   0:00.95 php                                                                                       
    9 root      20   0       0      0      0 S   0.3  0.0   4:57.99 rcu_sched                                                                                 
   13 root      20   0       0      0      0 S   0.3  0.0   0:52.78 ksoftirqd/1                                                                               
  806 root      20   0  140440   5176   2264 S   0.3  0.5   0:50.94 ihttpd                                                                                    
    1 root      20   0  190656   2040   1168 S   0.0  0.2   1:01.73 systemd                                                                                   
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.11 kthreadd                                                                                  
    3 root      20   0       0      0      0 S   0.0  0.0   0:38.29 ksoftirqd/0                                                                               
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                              
    7 root      rt   0       0      0      0 S   0.0  0.0   0:00.93 migration/0                                                                               
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                    
   10 root      rt   0       0      0      0 S   0.0  0.0   0:03.03 watchdog/0                                                                                
   11 root      rt   0       0      0      0 S   0.0  0.0   0:02.60 watchdog/1                                                                                
   12 root      rt   0       0      0      0 S   0.0  0.0   0:01.96 migration/1                                                                               
   17 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 khelper                                                                                   
   18 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs                                                                                 
   19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns                                                                                     
   20 root      20   0       0      0      0 S   0.0  0.0   0:00.19 khungtaskd                                                                                
   21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback                                                                                 
   22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd                                                                               
   23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset                                                                                    
   24 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd                                                                                   
   25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 md                                                                                        
   31 root      20   0       0      0      0 S   0.0  0.0   4:51.66 kswapd0                                                                                   
   32 root      25   5       0      0      0 S   0.0  0.0   0:00.00 ksmd   
...

4。 -该命令最常用于完成该过程。 Kill可以发送任何信号,但是默认情况下,它将发送TERM。 普通用户可以在自己的进程中使用kill,也可以通过root用户使用任何进程。

kill命令的语法为:

kill [-signal] pid

其中signal是要发送的信号的编号或符号名,PID是目标进程的进程ID。

没有信号编号的终止操作并不能保证将关闭此过程,因为可以捕获,阻止或忽略TERM信号。

命令’杀死-9 pid“确保’进程将被杀死,因为信号9的杀死不会被截获。 球队 杀死所有 按名称杀死进程。 例如,以下命令杀死所有Dovecot进程:

$ sudo killall dovecot

五。 Ctrl + Z -此命令用于挂起当前的前台进程并将其移至后台:

# service spamd restart
Redirecting to /bin/systemctl restart  spamd.service
^Z
[1]+  Stopped                 service spamd restart

6。 职位 -显示在后台运行的当前作业的列表:

# jobs
[1]+  Stopped                 service spamd restart

7 fg -此命令用于使后台进程脱颖而出:

# fg 1
service spamd restart

PS。 如果您喜欢这篇文章,则可以使用社交网络在社交网络上与您的朋友分享,或者在下面发表评论。

Sidebar