深入详解linux ps命令行输出信息 深入分析进程信息 详解aux每行内容

今日更新-新系列 linux命令行详解之 aux格式输出结果分析:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.4  0.1  24380 14652 ?        Ss   14:46   0:01 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    14:46   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        S    14:46   0:00 [pool_workqueue_release]
root           4  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-rcu_gp]
root           5  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-sync_wq]
root           6  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-kvfree_rcu_reclaim]
root           7  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-slub_flushwq]
root           8  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-netns]
root          10  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/0:1-events]
root          11  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/0:0H-events_highpri]
root          12  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u512:0-ipv6_addrconf]
root          13  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-mm_percpu_wq]
root          14  0.0  0.0      0     0 ?        I    14:46   0:00 [rcu_tasks_kthread]
root          15  0.0  0.0      0     0 ?        I    14:46   0:00 [rcu_tasks_rude_kthread]
root          16  0.0  0.0      0     0 ?        I    14:46   0:00 [rcu_tasks_trace_kthread]
root          17  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/0]
root          18  0.0  0.0      0     0 ?        I    14:46   0:00 [rcu_preempt]
root          19  0.0  0.0      0     0 ?        S    14:46   0:00 [rcu_exp_par_gp_kthread_worker/1]
root          20  0.0  0.0      0     0 ?        S    14:46   0:00 [rcu_exp_gp_kthread_worker]
root          21  0.0  0.0      0     0 ?        S    14:46   0:00 [migration/0]
root          22  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/0]
root          23  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/0]
root          24  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/1]
root          25  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/1]
root          26  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/1]
root          27  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/1]
root          29  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/1:0H-events_highpri]
root          30  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/2]
root          31  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/2]
root          32  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/2]
root          33  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/2]
root          34  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/2:0-events]
root          35  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/2:0H-kblockd]
root          36  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/3]
root          37  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/3]
root          38  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/3]
root          39  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/3]
root          41  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/3:0H-events_highpri]
root          42  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/4]
root          43  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/4]
root          44  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/4]
root          45  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/4]
root          47  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/4:0H-events_highpri]
root          48  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/5]
root          49  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/5]
root          50  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/5]
root          51  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/5]
root          53  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/5:0H-events_highpri]
root          54  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/6]
root          55  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/6]
root          56  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/6]
root          57  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/6]
root          58  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/6:0-events]
root          59  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/6:0H-events_highpri]
root          60  0.0  0.0      0     0 ?        S    14:46   0:00 [cpuhp/7]
root          61  0.0  0.0      0     0 ?        S    14:46   0:00 [idle_inject/7]
root          62  0.1  0.0      0     0 ?        S    14:46   0:00 [migration/7]
root          63  0.0  0.0      0     0 ?        S    14:46   0:00 [ksoftirqd/7]
root          65  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/7:0H-events_highpri]
root          67  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u514:0-events_unbound]
root          70  0.0  0.0      0     0 ?        S    14:46   0:00 [kdevtmpfs]
root          71  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-inet_frag_wq]
root          72  0.0  0.0      0     0 ?        S    14:46   0:00 [kauditd]
root          73  0.0  0.0      0     0 ?        S    14:46   0:00 [khungtaskd]
root          75  0.0  0.0      0     0 ?        S    14:46   0:00 [oom_reaper]
root          77  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-writeback]
root          78  0.0  0.0      0     0 ?        S    14:46   0:00 [kcompactd0]
root          79  0.0  0.0      0     0 ?        SN   14:46   0:00 [ksmd]
root          80  0.0  0.0      0     0 ?        SN   14:46   0:00 [khugepaged]
root          81  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-kintegrityd]
root          82  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-kblockd]
root          83  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-blkcg_punt_bio]
root          84  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/9-acpi]
root          85  0.0  0.0      0     0 ?        D    14:46   0:00 [kworker/1:1+usb_hub_wq]
root          86  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-tpm_dev_wq]
root          87  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-ata_sff]
root          88  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-md]
root          89  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-md_bitmap]
root          90  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-edac-poller]
root          91  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-devfreq_wq]
root          92  0.0  0.0      0     0 ?        S    14:46   0:00 [watchdogd]
root          93  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/5:1-events]
root          94  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/0:1H-kblockd]
root          95  0.0  0.0      0     0 ?        S    14:46   0:00 [kswapd0]
root          96  0.0  0.0      0     0 ?        S    14:46   0:00 [ecryptfs-kthread]
root          97  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-kthrotld]
root          98  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/24-pciehp]
root          99  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/25-pciehp]
root         100  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/26-pciehp]
root         101  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/27-pciehp]
root         102  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/28-pciehp]
root         103  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/29-pciehp]
root         104  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/30-pciehp]
root         105  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/31-pciehp]
root         106  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/32-pciehp]
root         107  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/33-pciehp]
root         108  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/34-pciehp]
root         109  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/35-pciehp]
root         110  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/36-pciehp]
root         111  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/37-pciehp]
root         112  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/38-pciehp]
root         113  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/39-pciehp]
root         114  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/40-pciehp]
root         115  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/41-pciehp]
root         116  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/42-pciehp]
root         117  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/43-pciehp]
root         118  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/44-pciehp]
root         119  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/45-pciehp]
root         120  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/46-pciehp]
root         121  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/47-pciehp]
root         122  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/48-pciehp]
root         123  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/49-pciehp]
root         124  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/50-pciehp]
root         125  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/51-pciehp]
root         126  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/52-pciehp]
root         127  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/53-pciehp]
root         128  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/54-pciehp]
root         129  0.0  0.0      0     0 ?        S    14:46   0:00 [irq/55-pciehp]
root         130  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/4:1-events]
root         131  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-acpi_thermal_pm]
root         133  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_0]
root         134  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_0]
root         135  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_1]
root         136  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_1]
root         140  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-mld]
root         142  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/5:1H-kblockd]
root         143  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-ipv6_addrconf]
root         144  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u512:1-ipv6_addrconf]
root         151  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-kstrp]
root         152  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/2:1-events]
root         156  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/u517:0-hci0]
root         157  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/u518:0-ttm]
root         158  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/u519:0-ttm]
root         159  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/u520:0-ttm]
root         160  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/u521:0-ttm]
root         161  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/7:1-events]
root         165  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u516:1-flush-8:0]
root         175  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-charger_manager]
root         176  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/7:2-events]
root         199  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/2:1H-kblockd]
root         203  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/6:1H-kblockd]
root         235  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/7:1H-kblockd]
root         236  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/4:1H-kblockd]
root         240  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/1:1H-kblockd]
root         241  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/3:1H-kblockd]
root         263  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u514:1-kvfree_rcu_reclaim]
root         265  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-mpt_poll_0]
root         266  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-mpt/0]
root         267  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_2]
root         268  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_2]
root         269  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u516:2-events_freezable_pwr_efficient]
root         298  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_3]
root         299  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_3]
root         300  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_4]
root         301  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_4]
root         302  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_5]
root         303  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_5]
root         304  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_6]
root         305  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_6]
root         306  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_7]
root         307  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_7]
root         308  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_8]
root         309  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_8]
root         310  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_9]
root         311  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_9]
root         312  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_10]
root         313  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_10]
root         314  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_11]
root         315  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_11]
root         316  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_12]
root         317  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_12]
root         318  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_13]
root         319  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_13]
root         320  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_14]
root         321  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_14]
root         322  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_15]
root         323  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_15]
root         324  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_16]
root         325  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_16]
root         326  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_17]
root         327  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_17]
root         328  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_18]
root         329  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_18]
root         330  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_19]
root         331  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_19]
root         332  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_20]
root         333  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_20]
root         334  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_21]
root         335  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_21]
root         336  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_22]
root         337  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_22]
root         338  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_23]
root         339  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_23]
root         340  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_24]
root         341  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_24]
root         342  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_25]
root         343  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_25]
root         344  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_26]
root         345  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_26]
root         346  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_27]
root         347  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_27]
root         348  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_28]
root         349  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_28]
root         350  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_29]
root         351  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_29]
root         352  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_30]
root         353  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_30]
root         354  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_31]
root         355  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_31]
root         356  0.0  0.0      0     0 ?        S    14:46   0:00 [scsi_eh_32]
root         357  0.0  0.0      0     0 ?        I<   14:46   0:00 [kworker/R-scsi_tmf_32]
root         376  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u515:24-events_power_efficient]
root         379  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u515:27-events_unbound]
root         380  0.0  0.0      0     0 ?        I    14:46   0:00 [kworker/u515:28-kvfree_rcu_reclaim]
root         436  0.0  0.0      0     0 ?        S    14:47   0:00 [jbd2/sda2-8]
root         437  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/R-ext4-rsv-conversion]
root         451  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u514:2-flush-8:0]
root         494  0.0  0.1  67272 17308 ?        S<s  14:47   0:00 /usr/lib/systemd/systemd-journald
root         518  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/5:2-mm_percpu_wq]
root         547  0.0  0.0 152476  1368 ?        Ssl  14:47   0:00 vmware-vmblock-fuse /run/vmblock-fuse -o rw,subtype=vmw
root         555  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/R-rpciod]
root         556  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/R-xprtiod]
root         557  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/3:2-events]
root         558  0.1  0.1  32128  9760 ?        Ss   14:47   0:00 /usr/lib/systemd/systemd-udevd
root         561  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u516:4-events_freezable_pwr_efficient]
root         562  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/3:3-events]
root         570  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u514:3-flush-8:0]
root         571  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u513:3-kvfree_rcu_reclaim]
root         576  0.0  0.0      0     0 ?        S    14:47   0:00 [irq/16-vmwgfx]
root         577  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/R-ttm]
root         596  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u513:4-events_power_efficient]
root         620  0.0  0.0      0     0 ?        S    14:47   0:00 [psimon]
root         747  0.0  0.0      0     0 ?        S    14:47   0:00 [irq/57-vmw_vmci]
root         748  0.0  0.0      0     0 ?        S    14:47   0:00 [irq/58-vmw_vmci]
root         749  0.0  0.0      0     0 ?        S    14:47   0:00 [irq/59-vmw_vmci]
root         772  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/1:2-events]
root         809  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/R-cryptd]
root        1109  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u516:5-flush-8:0]
root        1121  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/u513:6-events_unbound]
root        1204  0.0  0.0      0     0 ?        I<   14:47   0:00 [kworker/u517:2-hci0]
root        1382  0.0  0.0      0     0 ?        I    14:47   0:00 [kworker/6:3-events]
_rpc        1399  0.0  0.0   7968  3924 ?        Ss   14:47   0:00 /sbin/rpcbind -f -w
systemd+    1401  0.0  0.0  17560  7508 ?        Ss   14:47   0:00 /usr/lib/systemd/systemd-oomd
systemd+    1402  0.0  0.1  21584 12908 ?        Ss   14:47   0:00 /usr/lib/systemd/systemd-resolved

要完全理解 ps -elf 的输出,需从命令本身含义每个字段的详细解析内核线程与用户进程的区分,以及关键进程的作用四个维度逐层拆解。以下结合你的输出实例,逐细节说明:

一、先搞懂:ps -elf 命令本身是什么?

ps 是 Linux 中查看进程状态的核心命令,-elf 是三个选项的组合,决定了输出的范围和格式:

选项全称 / 含义作用
-e--everyone显示所有进程(包括系统进程、内核线程、其他用户的进程,无遗漏)
-l--long长格式输出,显示进程的优先级、状态、父进程 ID 等核心属性
-f--full全格式输出,补充显示进程的用户 ID、启动时间、完整命令行等

三者组合的效果:完整显示系统中所有进程的「身份、状态、资源占用、依赖关系、启动信息」等全部关键细节,是排查进程问题的「全能视角」。

二、逐字段详解:输出列的含义(从左到右)

你的输出第一行是字段标题:F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD,共 16 个字段,每个字段都对应进程的一个核心属性,下面逐个拆解:

1. 字段 1:F - 进程标志位(Flag)

表示进程的内核状态标志,由多个二进制位组成,每个位代表一个特性,常见取值及含义:

取值含义(二进制位解释)输出实例
1位 0 置 1:进程是超级用户进程(UID=0,即 root 权限)内核线程 [kthreadd](PID=2)的 F=1
4位 2 置 1:进程有子进程,且子进程被跟踪(或进程本身是「进程组 leader」)系统初始化进程 init(PID=1)的 F=4
5位 0 + 位 2 置 1:超级用户进程 + 有子进程内核线程 [kdevtmpfs](PID=70)的 F=5
0无特殊标志:普通用户进程,无子进程跟踪终端进程 bash(PID=3872)的 F=0

核心:F 字段反映进程的「权限等级」和「子进程管理状态」,root 进程的 F 通常含 1,有子进程的含 4。

2. 字段 2:S - 进程状态(State)

最关键的字段之一,反映进程当前的「运行状态」,不同字母对应不同状态,你的输出中出现了 SIR,完整状态对照表:

状态符全称含义输出实例
RRunning/Runnable正在运行(占用 CPU)或等待 CPU(就绪态)ps -elf 命令本身(PID=4189)的 S=R(正在执行)
SInterruptible Sleep可中断睡眠(等待某个事件完成,如 IO、信号,可被信号唤醒)系统初始化进程 init(PID=1)的 S=S(等待系统事件)
IIdle Kernel Thread空闲内核线程(仅内核线程有此状态,等待内核任务,不占用 CPU)内核工作队列线程 [kworker/R-rcu_gp](PID=4)的 S=I
DUninterruptible Sleep不可中断睡眠(等待关键 IO,如磁盘读写,不能被信号唤醒,强行杀进程会导致数据丢失)(你的输出中未出现,常见于磁盘 IO 密集进程)
ZZombie僵尸进程(进程已退出,但父进程未回收其资源,PID 还在)(你的输出中未出现,需用 `ps auxgrep Z` 排查)
TStopped进程被暂停(如用 Ctrl+Z 暂停,或被 kill -STOP 停止)(你的输出中未出现,常见于调试中的进程)

核心:S=I 是内核线程的专属空闲状态,S=S 是用户进程的普通睡眠,S=R 是活跃进程。

3. 字段 3:UID - 进程所属用户 ID(User ID)

表示进程由哪个用户启动,决定了进程的「权限范围」,常见取值:

UID 值对应用户含义输出实例
root超级用户(UID=0)拥有系统最高权限,系统进程、内核线程几乎都是 rootinit(PID=1)、kthreadd(PID=2)的 UID=root
avahiAvahi 用户用于 Avahi 服务(局域网设备发现,如打印机共享)avahi-daemon(PID=1612)的 UID=avahi
syslogSyslog 用户用于日志服务(rsyslogd,管理系统日志)rsyslogd(PID=1616)的 UID=syslog
linux普通用户(如你的登录用户)仅拥有普通权限,桌面进程、终端进程都是此用户gnome-shell(PID=2971)、bash(PID=3872)的 UID=linux

核心:通过 UID 可快速判断进程的「权限风险」—— 若普通用户启动了 UID=root 的进程,可能存在权限异常。

4. 字段 4:PID - 进程 ID(Process ID)

进程的唯一标识(系统中每个进程的 PID 不重复),是操作进程的核心依据(如 kill PID 终止进程),关键 PID 的特殊意义:

PID 值对应进程特殊意义
1init(或 systemd「进程之祖」:系统启动后第一个用户进程,所有用户进程的最终父进程
2kthreadd「内核线程之父」:所有内核线程的父进程,由内核直接创建
其他普通进程 / 内核线程如 NetworkManager(PID=1658)、gnome-shell(PID=2971)

核心:PID 是进程的「身份证」,排查进程问题时必须先定位 PID。

5. 字段 5:PPID - 父进程 ID(Parent PID)

表示当前进程的「父进程」(哪个进程启动了它),反映进程的「依赖关系」,实例分析:

子进程 PID子进程名称PPID父进程名称关系说明
1init0内核(PID=0)init 由内核直接启动,无用户态父进程
2kthreadd0内核(PID=0)内核线程的根进程,由内核创建
1658NetworkManager1init网络管理进程由系统初始化进程启动
3872bash3865gnome-terminal-server终端 bash 进程由终端服务进程启动

核心:通过 PPID 可追溯进程的「启动链」,比如终止父进程会导致子进程成为「孤儿进程」(最终被 init 收养,PPID 变为 1)。

6. 字段 6:C - CPU 使用率(CPU Utilization)

表示进程在过去一段时间内(通常是 100ms)占用 CPU 的百分比(0~100),反映进程的「CPU 繁忙程度」:

C 值含义输出实例
0几乎不占用 CPU(空闲或等待 IO)大多数内核线程(如 [kworker])、后台进程(如 init)的 C=0
2占用 2% CPU(轻度繁忙)桌面进程 gnome-shell(PID=2971)的 C=2(负责桌面渲染,轻度占用)
更高值(如 10、50)高 CPU 占用(可能是性能瓶颈)(你的输出中未出现,常见于计算密集型进程,如编译、数据分析)

注意:C 是「历史平均使用率」,不是实时值,实时查看需用 top 命令。

7. 字段 7:PRI - 进程优先级(Priority)

表示进程被 CPU 调度的「优先级」,值越小,优先级越高(CPU 越优先分配时间片),取值范围通常是 0~139

  • 核心逻辑:PRI = 80 + NI(80 是默认基础优先级,NI 是下面的 nice 值)
  • 实例:khugepaged(PID=80)的 PRI=99,对应 NI=19(80+19=99),优先级低;kworker(PID=4)的 PRI=60,对应 NI=-20(80-20=60),优先级高。

核心:PRI 是内核实际调度时使用的优先级,由 NI(nice 值)调整。

8. 字段 8:NI - 进程 nice 值(Nice Value)

用于「调整进程优先级」的用户态参数,取值范围是 -20~19,规则:

NI 值含义对 PRI 的影响输出实例
-20最高 nice 值(优先级最高)PRI=80-20=60内核关键线程 [kworker/R-rcu_gp](PID=4)的 NI=-20
0默认 nice 值(普通优先级)PRI=80+0=80大多数进程(如 initbash)的 NI=0
19最低 nice 值(优先级最低)PRI=80+19=99内存优化进程 khugepaged(PID=80)的 NI=19

注意:普通用户只能将 NI 调大(降低优先级),root 用户可任意调整(如 nice -n -5 进程名 提高优先级)。

9. 字段 9:ADDR - 进程内存地址(Address)

表示进程在内存中的「位置」,但现代 Linux 使用「虚拟内存分页机制」,此字段已几乎无实际意义,常见取值:

ADDR 值含义输出实例
-进程不在物理内存中(或内核线程无用户态内存)所有内核线程(如 [kthreadd])、大多数用户进程(如 init)的 ADDR=-
具体地址(如 0x1234进程在物理内存中的地址(极少出现,仅用于调试内核)

核心:无需关注此字段,现代系统中它的实用价值已被虚拟内存机制取代。

10. 字段 10:SZ - 进程虚拟内存大小(Size)

表示进程占用的「虚拟内存总量」,单位是「内存页」(1 页 = 4KB,不同系统可能不同),计算公式:虚拟内存大小(KB)= SZ × 4

SZ 值含义输出实例
0无虚拟内存(仅内核线程,无用户态地址空间)所有内核线程(如 [kthreadd])的 SZ=0
6095虚拟内存 = 6095×4=24380KB≈24MBinit(PID=1)的 SZ=6095(系统初始化进程,内存占用小)
1124258虚拟内存 = 1124258×4≈4.4GBgnome-shell(PID=2971)的 SZ=1124258(桌面渲染进程,虚拟内存大,含共享库)

注意:SZ 是虚拟内存(含共享库、交换空间),不是物理内存(物理内存需看 top 中的 RES 字段)。

11. 字段 11:WCHAN - 进程等待的内核事件(Wait Channel)

表示进程当前「等待的内核函数或事件」(若进程处于睡眠状态,此字段显示它在等什么),常见取值:

WCHAN 值含义输出实例
-进程正在运行(R 状态),无需等待ps -elf 命令本身(PID=4189,S=R)的 WCHAN=-
ep_pol等待 epoll 事件(IO 多路复用,如网络服务、桌面进程)pipewire(PID=2683)的 WCHAN=ep_pol(音频服务等待 IO)
do_pol等待 poll 事件(传统 IO 多路复用)gnome-shell(PID=2971)的 WCHAN=do_pol(桌面进程等待用户输入)
futex_等待 futex 同步(进程间互斥锁,如多线程程序)gvfsd-fuse(PID=2889)的 WCHAN=futex_(文件系统服务等待锁)

核心:通过 WCHAN 可判断睡眠进程的「等待原因」,比如 WCHAN=ep_pol 通常是网络 / IO 进程,WCHAN=futex_是多线程同步。

12. 字段 12:STIME - 进程启动时间(Start Time)

表示进程的「启动时间」,格式为「时:分」(若启动时间超过 24 小时,会显示为「月 - 日」):

STIME 值含义输出实例
14:46进程在 14 点 46 分启动系统初始化进程 init、内核线程 kthreadd 的 STIME=14:46(系统启动时间)
14:47进程在 14 点 47 分启动桌面进程 gnome-shell、终端进程 bash 的 STIME=14:47(用户登录后启动)

核心:通过 STIME 可判断进程的「存活时间」,比如 STIME=14:46 的进程是系统启动时就运行的核心进程。

13. 字段 13:TTY - 进程关联的终端(Terminal)

表示进程是从哪个「终端」启动的(终端是进程与用户交互的接口),常见取值:

TTY 值含义输出实例
?无关联终端(后台进程、系统进程、内核线程,无需用户交互)所有内核线程(如 [kthreadd])、系统服务(如 initNetworkManager)的 TTY=?
tty2虚拟控制台终端(本地物理终端,按 Ctrl+Alt+F2 可切换)gdm-wayland-session(PID=2783)的 TTY=tty2(桌面登录终端)
pts/0伪终端(远程登录或终端模拟器,如 SSH、GNOME 终端)bash(PID=3872)、ps -elf(PID=4189)的 TTY=pts/0(你当前使用的终端)

核心:TTY=? 的进程是「无人值守」的后台进程,TTY=pts/xx 的是用户当前交互的进程。

14. 字段 14:TIME - 进程占用 CPU 的总时间(CPU Time)

表示进程从启动到现在「累计占用 CPU 的时间」,格式为「时:分: 秒」,注意:不是进程的存活时间,而是实际使用 CPU 的时间:

TIME 值含义输出实例
00:00:00几乎未占用 CPU大多数内核线程、后台服务(如 avahi-daemon)的 TIME=00:00:00
00:00:01累计占用 CPU 1 秒init(PID=1)的 TIME=00:00:01(系统启动后仅用 1 秒 CPU)
00:00:10累计占用 CPU 10 秒gnome-shell(PID=2971)的 TIME=00:00:10(桌面渲染消耗 CPU)

核心:TIME 值高的进程可能是「CPU 密集型进程」(如编译、数据分析),需关注是否存在性能瓶颈。

15. 字段 15:CMD - 进程的完整命令行(Command)

表示启动进程的「完整命令及参数」,是识别进程用途的最直接依据,关键分类:

CMD 格式含义输出实例
[命令名]内核线程(用中括号区分,无用户态命令行)[kthreadd][kworker/R-rcu_gp](内核线程,负责内核任务)
/路径/命令 参数用户进程 / 系统服务(完整路径 + 参数)/sbin/init splash(init 进程,参数splash表示启动图形界面)、/usr/lib/snapd/snapd(Snap 包管理服务)
命令 参数普通用户进程(无完整路径,依赖环境变量)bash(终端 shell)、ps -elf(当前执行的命令)

核心:CMD 是判断进程「用途」的核心 —— 比如看到 NetworkManager 就知道是网络管理进程,看到 gnome-shell 就知道是桌面核心进程。

三、关键区分:内核线程 vs 用户进程

你的输出中,大量 [xxx] 格式的进程是内核线程,其余是用户进程,两者的核心区别如下:

特征内核线程(Kernel Thread)用户进程(User Process)
CMD 格式用中括号包裹(如 [kthreadd]无中括号(如 /sbin/init
SZ 值0(无用户态虚拟内存)大于 0(有虚拟内存)
UID几乎都是 root可能是 root、普通用户(如 linux)、专用用户(如 avahi)
PPID几乎都是 2(父进程是 kthreadd父进程多样(如 init、终端进程、服务进程)
作用执行内核任务(如内存回收、IO 调度、中断处理)执行用户任务(如桌面渲染、网络管理、终端交互)

实例:[kworker/R-rcu_gp](内核线程,回收内存)、NetworkManager(用户进程,管理网络)。

四、核心进程解析(结合你的输出)

从输出中挑出几个「系统运行必需」的关键进程,理解它们的作用:

  1. /sbin/init splash(PID=1,PPID=0)系统「初始化进程」(Ubuntu 中是 systemd 的软链接),负责启动所有系统服务(如 NetworkManager、snapd)和用户进程,是所有用户进程的「最终父进程」,一旦退出,系统会崩溃。

  2. [kthreadd](PID=2,PPID=0)内核线程的「父进程」,由内核直接创建,负责管理所有内核线程(如 kworker、ksoftirqd),是内核任务的「调度中枢」。

  3. /usr/lib/snapd/snapd(PID=1601,PPID=1)Snap 包管理服务,负责安装、更新、运行 Snap 格式的软件(如 Chrome、VS Code 的 Snap 版本),是 Ubuntu 中常见的包管理进程。

  4. /usr/sbin/NetworkManager(PID=1658,PPID=1)网络管理进程,负责管理 WiFi、以太网、VPN 等网络连接,自动获取 IP 地址(DHCP),是桌面系统联网的核心。

  5. /usr/sbin/gdm3(PID=1906,PPID=1)GNOME 桌面的「登录管理器」,负责显示登录界面、验证用户密码、启动桌面会话(如 gnome-shell),没有它无法进入图形桌面。

  6. /usr/bin/gnome-shell(PID=2971,PPID=2669)GNOME 桌面的「核心渲染进程」,负责绘制桌面、任务栏、窗口管理、用户交互(如点击图标、拖动窗口),是桌面可视化的关键。

  7. bash(PID=3872,PPID=3865)终端的「命令行解释器」(shell),你输入的所有 Linux 命令(如 ps -elf)都由它执行,是用户与系统交互的「桥梁」。

总结

ps -elf 的输出是一张「系统进程全景图」,每个字段都对应进程的一个核心属性:

  • 从 PIDPPID 看进程依赖;
  • 从 SWCHAN 看进程状态;
  • 从 UIDF 看进程权限;
  • 从 CMD 看进程用途。

日常排查问题时,可结合 grep 过滤(如 ps -elf | grep gnome-shell 查看桌面进程),快速定位目标进程的详细信息。

(2)扩展 : -elf 又是输出了啥???

要完全理解 ps -elf 的输出,需从命令本身含义每个字段的详细解析内核线程与用户进程的区分,以及关键进程的作用四个维度逐层拆解。以下结合你的输出实例,逐细节说明:

一、先搞懂:ps -elf 命令本身是什么?

ps 是 Linux 中查看进程状态的核心命令,-elf 是三个选项的组合,决定了输出的范围和格式:

选项全称 / 含义作用
-e--everyone显示所有进程(包括系统进程、内核线程、其他用户的进程,无遗漏)
-l--long长格式输出,显示进程的优先级、状态、父进程 ID 等核心属性
-f--full全格式输出,补充显示进程的用户 ID、启动时间、完整命令行等

三者组合的效果:完整显示系统中所有进程的「身份、状态、资源占用、依赖关系、启动信息」等全部关键细节,是排查进程问题的「全能视角」。

二、逐字段详解:输出列的含义(从左到右)

你的输出第一行是字段标题:F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD,共 16 个字段,每个字段都对应进程的一个核心属性,下面逐个拆解:

1. 字段 1:F - 进程标志位(Flag)

表示进程的内核状态标志,由多个二进制位组成,每个位代表一个特性,常见取值及含义:

取值含义(二进制位解释)输出实例
1位 0 置 1:进程是超级用户进程(UID=0,即 root 权限)内核线程 [kthreadd](PID=2)的 F=1
4位 2 置 1:进程有子进程,且子进程被跟踪(或进程本身是「进程组 leader」)系统初始化进程 init(PID=1)的 F=4
5位 0 + 位 2 置 1:超级用户进程 + 有子进程内核线程 [kdevtmpfs](PID=70)的 F=5
0无特殊标志:普通用户进程,无子进程跟踪终端进程 bash(PID=3872)的 F=0

核心:F 字段反映进程的「权限等级」和「子进程管理状态」,root 进程的 F 通常含 1,有子进程的含 4。

2. 字段 2:S - 进程状态(State)

最关键的字段之一,反映进程当前的「运行状态」,不同字母对应不同状态,你的输出中出现了 SIR,完整状态对照表:

状态符全称含义输出实例
RRunning/Runnable正在运行(占用 CPU)或等待 CPU(就绪态)ps -elf 命令本身(PID=4189)的 S=R(正在执行)
SInterruptible Sleep可中断睡眠(等待某个事件完成,如 IO、信号,可被信号唤醒)系统初始化进程 init(PID=1)的 S=S(等待系统事件)
IIdle Kernel Thread空闲内核线程(仅内核线程有此状态,等待内核任务,不占用 CPU)内核工作队列线程 [kworker/R-rcu_gp](PID=4)的 S=I
DUninterruptible Sleep不可中断睡眠(等待关键 IO,如磁盘读写,不能被信号唤醒,强行杀进程会导致数据丢失)(你的输出中未出现,常见于磁盘 IO 密集进程)
ZZombie僵尸进程(进程已退出,但父进程未回收其资源,PID 还在)(你的输出中未出现,需用 `ps auxgrep Z` 排查)
TStopped进程被暂停(如用 Ctrl+Z 暂停,或被 kill -STOP 停止)(你的输出中未出现,常见于调试中的进程)

核心:S=I 是内核线程的专属空闲状态,S=S 是用户进程的普通睡眠,S=R 是活跃进程。

3. 字段 3:UID - 进程所属用户 ID(User ID)

表示进程由哪个用户启动,决定了进程的「权限范围」,常见取值:

UID 值对应用户含义输出实例
root超级用户(UID=0)拥有系统最高权限,系统进程、内核线程几乎都是 rootinit(PID=1)、kthreadd(PID=2)的 UID=root
avahiAvahi 用户用于 Avahi 服务(局域网设备发现,如打印机共享)avahi-daemon(PID=1612)的 UID=avahi
syslogSyslog 用户用于日志服务(rsyslogd,管理系统日志)rsyslogd(PID=1616)的 UID=syslog
linux普通用户(如你的登录用户)仅拥有普通权限,桌面进程、终端进程都是此用户gnome-shell(PID=2971)、bash(PID=3872)的 UID=linux

核心:通过 UID 可快速判断进程的「权限风险」—— 若普通用户启动了 UID=root 的进程,可能存在权限异常。

4. 字段 4:PID - 进程 ID(Process ID)

进程的唯一标识(系统中每个进程的 PID 不重复),是操作进程的核心依据(如 kill PID 终止进程),关键 PID 的特殊意义:

PID 值对应进程特殊意义
1init(或 systemd「进程之祖」:系统启动后第一个用户进程,所有用户进程的最终父进程
2kthreadd「内核线程之父」:所有内核线程的父进程,由内核直接创建
其他普通进程 / 内核线程如 NetworkManager(PID=1658)、gnome-shell(PID=2971)

核心:PID 是进程的「身份证」,排查进程问题时必须先定位 PID。

5. 字段 5:PPID - 父进程 ID(Parent PID)

表示当前进程的「父进程」(哪个进程启动了它),反映进程的「依赖关系」,实例分析:

子进程 PID子进程名称PPID父进程名称关系说明
1init0内核(PID=0)init 由内核直接启动,无用户态父进程
2kthreadd0内核(PID=0)内核线程的根进程,由内核创建
1658NetworkManager1init网络管理进程由系统初始化进程启动
3872bash3865gnome-terminal-server终端 bash 进程由终端服务进程启动

核心:通过 PPID 可追溯进程的「启动链」,比如终止父进程会导致子进程成为「孤儿进程」(最终被 init 收养,PPID 变为 1)。

6. 字段 6:C - CPU 使用率(CPU Utilization)

表示进程在过去一段时间内(通常是 100ms)占用 CPU 的百分比(0~100),反映进程的「CPU 繁忙程度」:

C 值含义输出实例
0几乎不占用 CPU(空闲或等待 IO)大多数内核线程(如 [kworker])、后台进程(如 init)的 C=0
2占用 2% CPU(轻度繁忙)桌面进程 gnome-shell(PID=2971)的 C=2(负责桌面渲染,轻度占用)
更高值(如 10、50)高 CPU 占用(可能是性能瓶颈)(你的输出中未出现,常见于计算密集型进程,如编译、数据分析)

注意:C 是「历史平均使用率」,不是实时值,实时查看需用 top 命令。

7. 字段 7:PRI - 进程优先级(Priority)

表示进程被 CPU 调度的「优先级」,值越小,优先级越高(CPU 越优先分配时间片),取值范围通常是 0~139

  • 核心逻辑:PRI = 80 + NI(80 是默认基础优先级,NI 是下面的 nice 值)
  • 实例:khugepaged(PID=80)的 PRI=99,对应 NI=19(80+19=99),优先级低;kworker(PID=4)的 PRI=60,对应 NI=-20(80-20=60),优先级高。

核心:PRI 是内核实际调度时使用的优先级,由 NI(nice 值)调整。

8. 字段 8:NI - 进程 nice 值(Nice Value)

用于「调整进程优先级」的用户态参数,取值范围是 -20~19,规则:

NI 值含义对 PRI 的影响输出实例
-20最高 nice 值(优先级最高)PRI=80-20=60内核关键线程 [kworker/R-rcu_gp](PID=4)的 NI=-20
0默认 nice 值(普通优先级)PRI=80+0=80大多数进程(如 initbash)的 NI=0
19最低 nice 值(优先级最低)PRI=80+19=99内存优化进程 khugepaged(PID=80)的 NI=19

注意:普通用户只能将 NI 调大(降低优先级),root 用户可任意调整(如 nice -n -5 进程名 提高优先级)。

9. 字段 9:ADDR - 进程内存地址(Address)

表示进程在内存中的「位置」,但现代 Linux 使用「虚拟内存分页机制」,此字段已几乎无实际意义,常见取值:

ADDR 值含义输出实例
-进程不在物理内存中(或内核线程无用户态内存)所有内核线程(如 [kthreadd])、大多数用户进程(如 init)的 ADDR=-
具体地址(如 0x1234进程在物理内存中的地址(极少出现,仅用于调试内核)

核心:无需关注此字段,现代系统中它的实用价值已被虚拟内存机制取代。

10. 字段 10:SZ - 进程虚拟内存大小(Size)

表示进程占用的「虚拟内存总量」,单位是「内存页」(1 页 = 4KB,不同系统可能不同),计算公式:虚拟内存大小(KB)= SZ × 4

SZ 值含义输出实例
0无虚拟内存(仅内核线程,无用户态地址空间)所有内核线程(如 [kthreadd])的 SZ=0
6095虚拟内存 = 6095×4=24380KB≈24MBinit(PID=1)的 SZ=6095(系统初始化进程,内存占用小)
1124258虚拟内存 = 1124258×4≈4.4GBgnome-shell(PID=2971)的 SZ=1124258(桌面渲染进程,虚拟内存大,含共享库)

注意:SZ 是虚拟内存(含共享库、交换空间),不是物理内存(物理内存需看 top 中的 RES 字段)。

11. 字段 11:WCHAN - 进程等待的内核事件(Wait Channel)

表示进程当前「等待的内核函数或事件」(若进程处于睡眠状态,此字段显示它在等什么),常见取值:

WCHAN 值含义输出实例
-进程正在运行(R 状态),无需等待ps -elf 命令本身(PID=4189,S=R)的 WCHAN=-
ep_pol等待 epoll 事件(IO 多路复用,如网络服务、桌面进程)pipewire(PID=2683)的 WCHAN=ep_pol(音频服务等待 IO)
do_pol等待 poll 事件(传统 IO 多路复用)gnome-shell(PID=2971)的 WCHAN=do_pol(桌面进程等待用户输入)
futex_等待 futex 同步(进程间互斥锁,如多线程程序)gvfsd-fuse(PID=2889)的 WCHAN=futex_(文件系统服务等待锁)

核心:通过 WCHAN 可判断睡眠进程的「等待原因」,比如 WCHAN=ep_pol 通常是网络 / IO 进程,WCHAN=futex_是多线程同步。

12. 字段 12:STIME - 进程启动时间(Start Time)

表示进程的「启动时间」,格式为「时:分」(若启动时间超过 24 小时,会显示为「月 - 日」):

STIME 值含义输出实例
14:46进程在 14 点 46 分启动系统初始化进程 init、内核线程 kthreadd 的 STIME=14:46(系统启动时间)
14:47进程在 14 点 47 分启动桌面进程 gnome-shell、终端进程 bash 的 STIME=14:47(用户登录后启动)

核心:通过 STIME 可判断进程的「存活时间」,比如 STIME=14:46 的进程是系统启动时就运行的核心进程。

13. 字段 13:TTY - 进程关联的终端(Terminal)

表示进程是从哪个「终端」启动的(终端是进程与用户交互的接口),常见取值:

TTY 值含义输出实例
?无关联终端(后台进程、系统进程、内核线程,无需用户交互)所有内核线程(如 [kthreadd])、系统服务(如 initNetworkManager)的 TTY=?
tty2虚拟控制台终端(本地物理终端,按 Ctrl+Alt+F2 可切换)gdm-wayland-session(PID=2783)的 TTY=tty2(桌面登录终端)
pts/0伪终端(远程登录或终端模拟器,如 SSH、GNOME 终端)bash(PID=3872)、ps -elf(PID=4189)的 TTY=pts/0(你当前使用的终端)

核心:TTY=? 的进程是「无人值守」的后台进程,TTY=pts/xx 的是用户当前交互的进程。

14. 字段 14:TIME - 进程占用 CPU 的总时间(CPU Time)

表示进程从启动到现在「累计占用 CPU 的时间」,格式为「时:分: 秒」,注意:不是进程的存活时间,而是实际使用 CPU 的时间:

TIME 值含义输出实例
00:00:00几乎未占用 CPU大多数内核线程、后台服务(如 avahi-daemon)的 TIME=00:00:00
00:00:01累计占用 CPU 1 秒init(PID=1)的 TIME=00:00:01(系统启动后仅用 1 秒 CPU)
00:00:10累计占用 CPU 10 秒gnome-shell(PID=2971)的 TIME=00:00:10(桌面渲染消耗 CPU)

核心:TIME 值高的进程可能是「CPU 密集型进程」(如编译、数据分析),需关注是否存在性能瓶颈。

15. 字段 15:CMD - 进程的完整命令行(Command)

表示启动进程的「完整命令及参数」,是识别进程用途的最直接依据,关键分类:

CMD 格式含义输出实例
[命令名]内核线程(用中括号区分,无用户态命令行)[kthreadd][kworker/R-rcu_gp](内核线程,负责内核任务)
/路径/命令 参数用户进程 / 系统服务(完整路径 + 参数)/sbin/init splash(init 进程,参数splash表示启动图形界面)、/usr/lib/snapd/snapd(Snap 包管理服务)
命令 参数普通用户进程(无完整路径,依赖环境变量)bash(终端 shell)、ps -elf(当前执行的命令)

核心:CMD 是判断进程「用途」的核心 —— 比如看到 NetworkManager 就知道是网络管理进程,看到 gnome-shell 就知道是桌面核心进程。

三、关键区分:内核线程 vs 用户进程

你的输出中,大量 [xxx] 格式的进程是内核线程,其余是用户进程,两者的核心区别如下:

特征内核线程(Kernel Thread)用户进程(User Process)
CMD 格式用中括号包裹(如 [kthreadd]无中括号(如 /sbin/init
SZ 值0(无用户态虚拟内存)大于 0(有虚拟内存)
UID几乎都是 root可能是 root、普通用户(如 linux)、专用用户(如 avahi)
PPID几乎都是 2(父进程是 kthreadd父进程多样(如 init、终端进程、服务进程)
作用执行内核任务(如内存回收、IO 调度、中断处理)执行用户任务(如桌面渲染、网络管理、终端交互)

实例:[kworker/R-rcu_gp](内核线程,回收内存)、NetworkManager(用户进程,管理网络)。

四、核心进程解析(结合你的输出)

从输出中挑出几个「系统运行必需」的关键进程,理解它们的作用:

  1. /sbin/init splash(PID=1,PPID=0)系统「初始化进程」(Ubuntu 中是 systemd 的软链接),负责启动所有系统服务(如 NetworkManager、snapd)和用户进程,是所有用户进程的「最终父进程」,一旦退出,系统会崩溃。

  2. [kthreadd](PID=2,PPID=0)内核线程的「父进程」,由内核直接创建,负责管理所有内核线程(如 kworker、ksoftirqd),是内核任务的「调度中枢」。

  3. /usr/lib/snapd/snapd(PID=1601,PPID=1)Snap 包管理服务,负责安装、更新、运行 Snap 格式的软件(如 Chrome、VS Code 的 Snap 版本),是 Ubuntu 中常见的包管理进程。

  4. /usr/sbin/NetworkManager(PID=1658,PPID=1)网络管理进程,负责管理 WiFi、以太网、VPN 等网络连接,自动获取 IP 地址(DHCP),是桌面系统联网的核心。

  5. /usr/sbin/gdm3(PID=1906,PPID=1)GNOME 桌面的「登录管理器」,负责显示登录界面、验证用户密码、启动桌面会话(如 gnome-shell),没有它无法进入图形桌面。

  6. /usr/bin/gnome-shell(PID=2971,PPID=2669)GNOME 桌面的「核心渲染进程」,负责绘制桌面、任务栏、窗口管理、用户交互(如点击图标、拖动窗口),是桌面可视化的关键。

  7. bash(PID=3872,PPID=3865)终端的「命令行解释器」(shell),你输入的所有 Linux 命令(如 ps -elf)都由它执行,是用户与系统交互的「桥梁」。

总结

ps -elf 的输出是一张「系统进程全景图」,每个字段都对应进程的一个核心属性:

  • 从 PIDPPID 看进程依赖;
  • 从 SWCHAN 看进程状态;
  • 从 UIDF 看进程权限;
  • 从 CMD 看进程用途。

日常排查问题时,可结合 grep 过滤(如 ps -elf | grep gnome-shell 查看桌面进程),快速定位目标进程的详细信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值