Linux进程管理(小白的“升级打怪”成长之路)

从‘最速控制’到代码:深入拆解韩京清ADRC中TD跟踪器的fhan函数(含Matlab/Simulink实例) 本文深入解析韩京清ADRC中的fhan函数,从理论到代码实现,详细拆解其在Matlab/Simulink中的应用。通过分析最速控制问题和非线性TD的连续形式,揭示fhan函数在信号处理和噪声抑制中的独特优势,并提供工程实践中的参数整定和优化技巧。 阅读详情

目录

一、进程查看命令

1、pstree

2、ps

2.1. 按进程状态分类(STAT 列)

2.2. 按运行方式分类

2.3. 按功能分类

2.4. 特殊进程

3、pgrep

4、top、htop

二、进程管理命令

1、kill

2、pkill与killall

三、进程类型

1、前台进程

2、后台进程

 看到感觉有帮助的朋友,动动发财的小手给博主点个赞                               


一、进程查看命令

1、pstree

用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁

用法:

pstree [选项]  

选项:

-A各进程树之间的连接以ASCII码字符来连接
-U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-p同时列出每个进程的PID
-u同时列出每个进程的所属账号名称
[root@bogon ~]# pstree
systemd─┬─ModemManager───3*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─accounts-daemon───3*[{accounts-daemon}]
        ├─alsactl
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─chronyd
        ├─colord───3*[{colord}]
        ├─crond
        ├─cupsd
        ├─dbus-broker-lau───dbus-broker
        ├─fwupd───4*[{fwupd}]
        ├─gdm─┬─gdm-session-wor─┬─gdm-wayland-ses─┬─gnome-session-b───3*[{gnome-session-b}]
        │     │                 │                 └─2*[{gdm-wayland-ses}]
        │     │                 └─2*[{gdm-session-wor}]
        │     └─2*[{gdm}]
        ├─gnome-keyring-d───3*[{gnome-keyring-d}]
        ├─irqbalance───{irqbalance}
        ├─lsmd
        ├─mcelog
        ├─nginx───2*[nginx]
        ├─polkitd───5*[{polkitd}]
        ├─power-profiles-───2*[{power-profiles-}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─sshd───sshd───sshd─┬─bash───pstree
        │                    └─sftp-server
        ├─sssd_kcm
        ├─switcheroo-cont───2*[{switcheroo-cont}]
        ├─systemd─┬─(sd-pam)
        │         ├─at-spi-bus-laun─┬─dbus-broker-lau───dbus-broker
        │         │                 └─3*[{at-spi-bus-laun}]
        │         ├─at-spi2-registr───2*[{at-spi2-registr}]
        │         ├─dbus-broker-lau───dbus-broker
        │         ├─dconf-service───2*[{dconf-service}]
        │         ├─evolution-addre───5*[{evolution-addre}]
        │         ├─evolution-calen───8*[{evolution-calen}]
        │         ├─evolution-sourc───3*[{evolution-sourc}]
        │         ├─2*[gjs───4*[{gjs}]]
        │         ├─gnome-session-b─┬─evolution-alarm───5*[{evolution-alarm}]
        │         │                 ├─gnome-software───3*[{gnome-software}]
        │         │                 ├─gsd-disk-utilit───2*[{gsd-disk-utilit}]
        │         │                 └─3*[{gnome-session-b}]
        │         ├─gnome-session-c───{gnome-session-c}
        │         ├─gnome-shell─┬─Xwayland
        │         │             ├─gnome-control-c───3*[{gnome-control-c}]
        │         │             ├─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}]
        │         │             │             ├─ibus-engine-sim───2*[{ibus-engine-sim}]
        │         │             │             ├─ibus-extension-───3*[{ibus-extension-}]
        │         │             │             └─2*[{ibus-daemon}]
        │         │             └─8*[{gnome-shell}]
        │         ├─gnome-shell-cal───5*[{gnome-shell-cal}]
        │         ├─gnome-terminal-─┬─bash
        │         │                 └─3*[{gnome-terminal-}]
        │         ├─goa-daemon───3*[{goa-daemon}]
        │         ├─goa-identity-se───3*[{goa-identity-se}]
        │         ├─gsd-a11y-settin───3*[{gsd-a11y-settin}]
        │         ├─gsd-color───3*[{gsd-color}]
        │         ├─gsd-datetime───3*[{gsd-datetime}]
        │         ├─gsd-housekeepin───3*[{gsd-housekeepin}]
        │         ├─gsd-keyboard───3*[{gsd-keyboard}]
        │         ├─gsd-media-keys───3*[{gsd-media-keys}]
        │         ├─gsd-power───3*[{gsd-power}]
        │         ├─gsd-print-notif───2*[{gsd-print-notif}]
        │         ├─gsd-printer───2*[{gsd-printer}]
        │         ├─gsd-rfkill───2*[{gsd-rfkill}]
        │         ├─gsd-screensaver───2*[{gsd-screensaver}]
        │         ├─gsd-sharing───3*[{gsd-sharing}]
        │         ├─gsd-smartcard───5*[{gsd-smartcard}]
        │         ├─gsd-sound───3*[{gsd-sound}]
        │         ├─gsd-usb-protect───3*[{gsd-usb-protect}]
        │         ├─gsd-wacom───3*[{gsd-wacom}]
        │         ├─gsd-xsettings───3*[{gsd-xsettings}]
        │         ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
        │         ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
        │         ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
        │         ├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}]
        │         ├─gvfsd─┬─gvfsd-dnssd───2*[{gvfsd-dnssd}]
        │         │       ├─gvfsd-network───3*[{gvfsd-network}]
        │         │       ├─gvfsd-trash───2*[{gvfsd-trash}]
        │         │       └─2*[{gvfsd}]
        │         ├─gvfsd-fuse───5*[{gvfsd-fuse}]
        │         ├─gvfsd-metadata───2*[{gvfsd-metadata}]
        │         ├─ibus-portal───2*[{ibus-portal}]
        │         ├─ibus-x11───2*[{ibus-x11}]
        │         ├─vmtoolsd───3*[{vmtoolsd}]
        │         └─xdg-permission-───2*[{xdg-permission-}]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─vmtoolsd───2*[{vmtoolsd}]
        ├─vmware-vmblock-───2*[{vmware-vmblock-}]
        └─wpa_supplicant

2、ps

显示系统当前进程瞬间运行状态

用法:

ps [选项]  

选项:

-A所有的进程均显示出来,与 -e 具有同样的效用
-a显示现行终端机下的所有进程,包括其他用户的进程
-u以用户为主的进程状态
-x通常与 a 这个参数一起使用,可列出较完整信息
-l较长、较详细的将该PID 的的信息列出
[root@bogon ~]# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.4 174616 18056 ?        Ss   04:06   0:03 /usr/lib/systemd/systemd rhgb --switched-root --system 
root           2  0.0  0.0      0     0 ?        S    04:06   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   04:06   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   04:06   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   04:06   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<   04:06   0:00 [netns]
root          10  0.0  0.0      0     0 ?        I<   04:06   0:00 [mm_percpu_wq]
root          12  0.0  0.0      0     0 ?        I    04:06   0:00 [rcu_tasks_kthre]
root          13  0.0  0.0      0     0 ?        I    04:06   0:00 [rcu_tasks_rude_]
root          14  0.0  0.0      0     0 ?        I    04:06   0:00 [rcu_tasks_trace]
root          15  0.0  0.0      0     0 ?        S    04:06   0:05 [ksoftirqd/0]
root          16  0.0  0.0      0     0 ?        S    04:06   0:00 [pr/tty0]
root          17  0.0  0.0      0     0 ?        I    04:06   0:42 [rcu_preempt]
root          18  0.0  0.0      0     0 ?        S    04:06   0:00 [migration/0]
root          19  0.0  0.0      0     0 ?        S    04:06   0:00 [idle_inject/0]
root          21  0.0  0.0      0     0 ?        S    04:06   0:00 [cpuhp/0]
root          22  0.0  0.0      0     0 ?        S    04:06   0:00 [cpuhp/1]
root          23  0.0  0.0      0     0 ?        S    04:06   0:00 [idle_inject/1]
root          24  0.0  0.0      0     0 ?        S    04:06   0:02 [migration/1]
root          25  0.0  0.0      0     0 ?        S    04:06   0:04 [ksoftirqd/1]
root          29  0.0  0.0      0     0 ?        S    04:06   0:00 [kdevtmpfs]
root          30  0.0  0.0      0     0 ?        I<   04:06   0:00 [inet_frag_wq]
root          31  0.0  0.0      0     0 ?        S    04:06   0:00 [kauditd]
root          33  0.0  0.0      0     0 ?        S    04:06   0:00 [khungtaskd]
root          34  0.0  0.0      0     0 ?        S    04:06   0:00 [oom_reaper]
root          35  0.0  0.0      0     0 ?        I<   04:06   0:00 [writeback]
root          36  0.0  0.0      0     0 ?        S    04:06   0:02 [kcompactd0]
root          37  0.0  0.0      0     0 ?        SN   04:06   0:00 [ksmd]
root          38  0.0  0.0      0     0 ?        SN   04:06   0:02 [khugepaged]
root          39  0.0  0.0      0     0 ?        I<   04:06   0:00 [cryptd]
root          40  0.0  0.0      0     0 ?        I<   04:06   0:00 [kintegrityd]
root          41  0.0  0.0      0     0 ?        I<   04:06   0:00 [kblockd]
root          42  0.0  0.0      0     0 ?        I<   04:06   0:00 [blkcg_punt_bio]

输出解析:

  • USER:进程的所有者。

  • PID:进程的 ID。

  • %CPU:进程占用的 CPU 百分比。

  • %MEM:进程占用的内存百分比。

  • VSZ:进程使用的虚拟内存大小。

  • RSS:进程使用的物理内存大小。

  • TTY:进程所在的终端。

  • STAT:进程的状态,如S(休眠)、R(运行)、Z(僵尸进程)等。

  • START:进程的启动时间。

  • TIME:进程运行的时间。

  • COMMAND:启动进程的命令。

进程状态:

S:休眠

s:父进程

R:运行

Z:僵尸进程(前台程序已死,但后台驻留进程没有正常退出;后果就是占用资源不干活。)


在 Linux 中,ps aux 命令用于显示当前系统中所有用户的进程信息。输出的每一列代表不同的属性,而进程本身并没有明确的“类型”分类,但我们可以根据进程的状态、运行方式或功能来区分它们的类别。以下是常见的进程分类:

2.1. 按进程状态分类(STAT 列)

ps aux 输出的 STAT 列(进程状态)会显示进程的当前状态,常见的状态码包括:

  • R (Running):正在运行或可运行(在运行队列中)。

  • S (Interruptible Sleep):休眠中(可被信号唤醒)。

  • D (Uninterruptible Sleep):不可中断的休眠(通常与硬件 I/O 相关)。

  • Z (Zombie):僵尸进程(已终止但未被父进程回收)。

  • T (Stopped):被信号(如 Ctrl+Z)或调试器暂停。

  • X (Dead):进程已完全终止(很少见到)。

  • < (High Priority):高优先级进程。

  • N (Low Priority):低优先级进程。

  • s (Session Leader):进程是会话的主进程。

  • l (Multi-threaded):多线程进程。

  • + (Foreground Process):前台进程组。


2.2. 按运行方式分类
  • 前台进程:与终端关联,接收用户输入(如命令行工具)。

  • 后台进程:通过 & 或 bg 放入后台运行(STAT 中可能显示 S 或 R)。

  • 守护进程(Daemon):系统服务进程,通常无终端关联(如 sshd、nginx),名称以 d 结尾的常见。


2.3. 按功能分类
  • 系统进程:内核或系统服务(如 systemd、kthreadd),通常由 root 用户运行。

  • 用户进程:由普通用户启动(如浏览器、终端应用)。

  • 内核线程:内核创建的线程(ps aux 中名称用 [] 括起,如 [kworker]),负责系统底层任务。


2.4. 特殊进程
  • 僵尸进程(Zombie):已终止但未被父进程调用 wait() 回收资源(需手动清理)。

  • 孤儿进程:父进程先终止,被 init/systemd 接管。


示例解析

运行 ps aux 的典型输出:

USER   PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     1  0.0  0.1 169896 13156 ?        Ss   May10   0:02 /sbin/init
mysql  789  0.5  5.0 1023456 50000 ?      Sl   May10  10:23 /usr/sbin/mysqld
user   1234 0.0  0.5 258000 40000 pts/0   R+   12:00   0:00 ps aux
  • /sbin/init:系统守护进程(STAT=Ss,会话主进程)。

  • mysqld:MySQL 数据库守护进程(STAT=Sl,多线程且休眠中)。

  • ps aux:用户前台进程(STAT=R+,正在运行且在前台)。


注意:ps -elf显示的信息比ps aux更为详细

3、pgrep

查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程

用法:

pgrep [选项] pidname 

选项:

-l同时显示进程名和PID
-o当匹配多个同一命令启动的进程时,显示进程号最小的那个
-n当匹配多个进程时,显示进程号最大的那个

注意:#pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程

pgrep [选项] pidname #先查找进程号
 
kill [选项] pid #用kill 结束进程

4、top、htop

top:动态监控系统处理器状态,htop姑且称之为top的增强版

yum install epel-release -y    #安装epel源     
yum install htop -y     #安装htop

常用选项

  • -d:指定更新的间隔时间,以秒为单位。

  • -n:指定更新的次数。

  • -p:监控指定进程的 ID。

  • -u:监控指定用户的进程。

常用按键

  • 空格键:立即刷新显示。

  • M:按照内存使用百分比对进程进行排序。

  • P:按照 CPU 使用百分比对进程进行排序。

  • T:按照进程运行时间对进程进行排序。

  • q:退出 top 命令。

  • h:显示帮助信息。

案例

`top -d 5`:每隔 5 秒更新一次进程信息。
​
`top -n 2`:更新两次进程信息后退出。
​
`top -p 1234`:监控进程 ID 为 1234 的进程。
​
`top -u root`:监控 root 用户的进程。
[root@bogon ~]# top
top - 20:41:32 up 16:35,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 309 total,   2 running, 307 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.7 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
MiB Mem :   3627.6 total,    735.3 free,   1524.1 used,   1654.7 buff/cache
MiB Swap:   4012.0 total,   4007.5 free,      4.5 used.   2103.5 avail Mem 
​
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                            
      1 root      20   0  174616  18056  10772 S   0.0   0.5   0:03.87 systemd                                            
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.13 kthreadd                                           
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                             
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                         
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq                                       
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                              
     10 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                       
     12 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_kthre                                    
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_rude_                                    
     14 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_trace                                    
     15 root      20   0       0      0      0 S   0.0   0.0   0:05.46 ksoftirqd/0                                        
     16 root      20   0       0      0      0 S   0.0   0.0   0:00.01 pr/tty0                                            
     17 root      20   0       0      0      0 I   0.0   0.0   0:42.55 rcu_preempt                                        
     18 root      rt   0       0      0      0 S   0.0   0.0   0:00.40 migration/0                                        
     19 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0                                      
     21 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                            
     22 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1                                            
     23 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/1                                      
     24 root      rt   0       0      0      0 S   0.0   0.0   0:02.28 migration/1                                        
     25 root      20   0       0      0      0 S   0.0   0.0   0:04.88 ksoftirqd/1                                        
     29 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs                                          
     30 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 inet_frag_wq                                       
[root@bogon ~]# htop
    0[                                                 0.0%] Tasks: 112, 216 thr, 197 kthr; 0 running
    1[|                                                1.3%] Load average: 0.00 0.00 0.00 
  Mem[||||||||||||||||||||||||||||||||||||||||||1.24G/3.54G] Uptime: 16:35:45
  Swp[||                                        3.68M/3.92G]
​
  [Main] [I/O]
    PID USER       PRI  NI  VIRT   RES   SHR S  CPU%▽MEM%   TIME+  Command                                                
      1 root        20   0  170M 18056 10772 S   0.0  0.5  0:03.86 /usr/lib/systemd/systemd rhgb --switched-root --system 
    722 root        20   0 27216 11776 10240 S   0.0  0.3  0:00.93 ├─ /usr/lib/systemd/systemd-journald
    738 root        20   0  148M  3320  1024 S   0.0  0.1  0:00.00 ├─ vmware-vmblock-fuse /run/vmblock-fuse -o rw,subtype=
    739 root        20   0  148M  3320  1024 S   0.0  0.1  0:00.00 │  ├─ vmware-vmblock-fuse /run/vmblock-fuse -o rw,subty
    740 root        20   0  148M  3320  1024 S   0.0  0.1  0:00.00 │  └─ vmware-vmblock-fuse /run/vmblock-fuse -o rw,subty
    741 root        20   0 36740 13628  8960 S   0.0  0.4  0:00.44 ├─ /usr/lib/systemd/systemd-udevd
    854 root        19  -1 91832  4484  1664 S   0.0  0.1  0:02.37 ├─ /sbin/auditd
    855 root        16  -4 91832  4484  1664 S   0.0  0.1  0:00.10 │  ├─ /sbin/auditd
    856 root        16  -4  7788  3328  2944 S   0.0  0.1  0:00.60 │  ├─ /usr/sbin/sedispatch
    857 root        16  -4 91832  4484  1664 S   0.0  0.1  0:00.50 │  └─ /sbin/auditd
    877 dbus        20   0 10952  4584  3840 S   0.0  0.1  0:00.02 ├─ /usr/bin/dbus-broker-launch --scope system --audit
    878 dbus        20   0 10300  5668  2304 S   0.0  0.2  0:00.66 │  └─ dbus-broker --log 4 --controller 9 --machine-id b
    879 avahi       20   0 15932  6656  5760 S   0.0  0.2  0:00.82 ├─ avahi-daemon: running [linux.local]
    918 avahi       20   0 15664  1972  1152 S   0.0  0.1  0:00.00 │  └─ avahi-daemon: chroot helper
    880 root        20   0  9752  5248  4864 S   0.0  0.1  0:00.02 ├─ /usr/libexec/bluetooth/bluetoothd
    883 root        20   0 79256  5024  2688 S   0.0  0.1  0:02.98 ├─ /usr/sbin/irqbalance --foreground
    892 root        20   0 79256  5024  2688 S   0.0  0.1  0:00.00 │  └─ /usr/sbin/irqbalance --foreground
    884 libstorage  20   0  2704  1792  1664 S   0.0  0.0  0:00.21 ├─ /usr/bin/lsmd -d
    885 root        20   0  2816  1920  1792 S   0.0  0.1  0:00.00 ├─ /usr/sbin/mcelog --daemon --foreground
    886 polkitd     20   0 2454M 27696 19772 S   0.0  0.7  0:00.57 ├─ /usr/lib/polkit-1/polkitd --no-debug
F1Help  F2Setup F3SearchF4FilterF5List  F6SortByF7Nice -F8Nice +F9Kill  F10Quit             

二、进程管理命令

1、kill

语法:

kill [选项] pid 

选项:

-l列出所有信号参数
-a当处理当前进程时,不限制命令名和进程号的对应关系
-u指定用户
-p指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s发送指定的信号
-9强制杀死
-0(数字零)用来检测一个进程是否存在。

信号列表:

   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

信号含义解析:

信号名称作用
SIGHUP终端挂起或者控制进程结束时发出的信号,通常用于通知守护进程重新读取配置文件等。
SIGINT键盘中断信号,通常由用户按下 Ctrl+C 产生,用于终止正在运行的程序。
SIGQUIT键盘退出信号,通常由用户按下 Ctrl+\ 产生,用于使程序异常退出并产生核心转储文件(如果可能)。
SIGILL非法指令信号,表示程序执行了一条非法的机器指令。
SIGTRAP跟踪陷阱信号,用于调试程序,通常由断点触发。
SIGABRT异常终止信号,通常由程序内部的 abort 函数调用产生。
SIGBUS总线错误信号,通常表示访问内存时出现了总线错误。
SIGFPE浮点运算异常信号,例如除以零等浮点运算错误。
SIGKILL强制终止信号,无法被捕获或忽略,用于立即终止进程。
SIGUSR1用户自定义信号 1,留给用户程序自定义用途。
SIGSEGV内存访问越界信号,通常表示程序尝试访问非法的内存地址。
SIGUSR2用户自定义信号 2,留给用户程序自定义用途。
SIGPIPE管道破裂信号,当进程向一个没有读端的管道写入数据时产生。
SIGALRM闹钟信号,通常由 alarm 函数设置的定时器超时产生。
SIGTERM终止信号,是 kill 命令默认发送的信号,用于请求程序正常终止。
SIGSTKFLT协处理器栈错误信号,在某些特定架构的系统上使用。
SIGCHLD子进程状态改变信号,当子进程终止、暂停或继续运行时,父进程会收到此信号。
SIGCONT继续执行信号,用于使暂停的进程继续运行。
SIGSTOP暂停进程信号,无法被捕获或忽略,用于暂停进程的执行。
SIGTSTP终端停止信号,通常由用户按下 Ctrl+Z 产生,用于暂停前台进程的运行。
SIGTTIN后台进程从控制终端读取数据时收到的信号。
SIGTTOU后台进程向控制终端写入数据时收到的信号。
SIGURG紧急数据到达信号,通常用于网络编程中表示有紧急数据需要处理。
SIGXCPU超过 CPU 时间限制信号,表示进程超过了设定的 CPU 使用时间限制。
SIGXFSZ超过文件大小限制信号,表示进程试图扩大文件超过了系统限制。
SIGVTALRM虚拟定时器信号,用于在虚拟时间内设置定时器超时。
SIGPROF性能分析定时器信号,用于性能分析工具。
SIGWINCH窗口大小改变信号,当终端窗口大小发生改变时产生。
SIGIO异步 I/O 信号,表示异步 I/O 事件发生。
SIGPWR电源故障信号,在某些系统上表示电源状态发生变化。
SIGSYS系统调用错误信号,表示进程执行了一个无效的系统调用。
SIGRTMIN实时信号的最小值。
35 - 64SIGRTMIN+1 至 SIGRTMAX 是一系列的实时信号,用于实时应用程序中的优先级信号传递等

案例:

[root@bogon ~]# ps -aux | grep httpd
root        3581  1.1  0.3  20316 11288 ?        Ss   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3582  0.0  0.1  22048  7252 ?        S    14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3583  3.3  0.6 1571360 23628 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3585  3.8  0.5 1440224 21476 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3601  3.7  0.5 1440224 21416 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
root        3782  0.0  0.0 221680  2304 pts/1    S+   14:08   0:00 grep --color=auto httpd
[root@bogon ~]# kill 3585
[root@bogon ~]# ps -aux | grep httpd
root        3581  0.2  0.3  20316 11288 ?        Ss   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3582  0.0  0.1  22048  7252 ?        S    14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3583  0.8  0.6 1571360 23628 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3585  1.0  0.5 1440224 21476 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3601  0.9  0.5 1440224 21416 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
root        3865  0.0  0.0 221680  2304 pts/1    S+   14:08   0:00 grep --color=auto httpd
[root@bogon ~]# kill -9 3585
[root@bogon ~]# ps -aux | grep httpd
root        3581  0.2  0.3  20316 11288 ?        Ss   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3582  0.0  0.1  22048  7252 ?        S    14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3583  0.6  0.6 1571360 23628 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3601  0.7  0.5 1440224 21416 ?       Sl   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3906  1.0  0.5 1440224 21464 ?       Sl   14:09   0:00 /usr/sbin/httpd -DFOREGROUND
root        3961  0.0  0.0 221680  2304 pts/1    S+   14:09   0:00 grep --color=auto httpd

2、pkill与killall

pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序,如果想杀掉单个进程,请用kill来杀掉。

用法:

pkill/killall [选项] 进程名
[root@bogon nginx]# ps aux | grep httpd
root        3581  0.0  0.3  20316 11288 ?        Ss   14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3582  0.0  0.1  22048  7252 ?        S    14:07   0:00 /usr/sbin/httpd -DFOREGROUND
apache      3583  0.0  0.6 1571360 23628 ?       Sl   14:07   0:01 /usr/sbin/httpd -DFOREGROUND
apache      3601  0.0  0.5 1440224 21416 ?       Sl   14:07   0:01 /usr/sbin/httpd -DFOREGROUND
apache      3906  0.0  0.5 1440224 21464 ?       Sl   14:09   0:01 /usr/sbin/httpd -DFOREGROUND
root       17989  0.0  0.0 221680  2304 pts/1    S+   15:05   0:00 grep --color=auto httpd
[root@bogon nginx]# killall httpd 
[root@bogon nginx]# ps aux | grep httpd
root       18577  0.0  0.0 221680  2304 pts/1    S+   15:10   0:00 grep --color=auto httpd

三、进程类型

1、前台进程

在终端界面运行的进程,运行前台进程后,终端无法操作

#将前台进程放到后台运行
firefox & (#sleep 100 &#)
#注意:该运行前台进程的方式,当终端关闭时,进程也会随着关闭
nohup firefox & #关闭终端,进程不掉,错误进程信息会放进当前目录的nohup.out(自动生成)
#查看
jobs
#将进程调到前台运行
fg 1
#将正在运行的前台进程放到后台运行
ctrl + z
bg 1
​

2、后台进程

驻留在后端运行的进程

​

 看到感觉有帮助的朋友,动动发财的小手给博主点个赞

            
                  

零基础学习CANoe Panel(5)——改变变量的值,控件图像也改变,这是怎么回事? Panel 中控件的图像随着值变化,是怎么回事? 阅读详情

相关推荐

80MHz~100MHz频谱分析仪设计

由理论分析可知,经过乘法器后输出的信号为频率为w1+w2的高频信号和w1-w2的低频信号,除了想要采样的直流信号外,最小的信号频率为100kHz。因此,经过一系列推导可以得到该滤波器的元件C1,C2,C3,R1,R2的近似值分别为:C1=2.36nF,C2=32.1nF,C3=1.07nF,R1=1.39k,R2=2.84k。AK,此时的频率w2即为被测信号的频率,待测信号源电压幅度为,因此为了能达到直流采样的设计,我们将本振源的频率输出范围做成80~110 MHz,提高了题目的频率要求。

qq_48771816的博客 5242

高级运维开发工程师的打怪升级之路

人生就像一场游戏,充满了挑战与机遇。作为高级运维开发工程师,我们在职业生涯中不断面对各种困难,为了梦想、为了家人、为了自己,我们不懈奋斗。今天,让我们一起回顾这段充满挑战的“打怪升级”之旅,看看如何从一名初出茅庐的新人成长为行业内的佼佼者。在初级阶段,运维开发工程师的工作可能显得琐碎且缺乏成就感,但这些基础工作为后续的发展奠定了坚实的基础。每年的“金三银四”是跳槽的高峰期,但并不是每个人都能顺利找到理想的工作。掌握80%互联网公司会用到的技术,才能在职场中具备更强的竞争力。

软件架构师笔记 1433

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 854

gvfs-udisks2-vo 异常占用内存高

在一台存储环境中发现,gvfs-udisk2-vo异常,占用内存较高,导致服务器出现异常问题,影响存储服务器的写入。 关闭gvfs-udisks2-vo方法 修改/usr/share/gvfs/remote-volume-monitors/udisk2.monitor,将IsNative修改为false ...

yysalad的专栏 5994

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP?

本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。

kotlin6android的博客 453

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 999

由于gvfs-udisks2-volume-monitor进程占用内存过大

经查看,发现gvfs-udisks2-volume-monitor这个为cenots 图形界面中控制u盘或者存储自动发现的进程【命令行界面是不会启动该进程的】,该进程发生了内存泄漏,导致该服务器内存使用率一直过高。

weixin_44207346的博客 4038

第五章 TTM 后备管理:5.11 迁移的执行

本文讨论 TTM 框架中缓冲区对象(BO)数据搬运的完整流程,涵盖搬运入口 ttm_bo_handle_move_mem() 的执行步骤、驱动 move 回调的约定、同步辅助函数的使用、多跳迁移机制及异步流水化搬运的处理。重点说明了中转位置的引入原因与执行逻辑,以及通过 ghost 对象和 fence 机制解决异步搬运中的资源释放与访问一致性问题,确保数据安全迁移的同时支持 GPU 异步操作。

图形/计算GPU的驱动与虚拟化技术分享园地 1710

高级运维工程师打怪升级之路

人生就像一场游戏,这场游戏给我们带来了的许多困难,但是我们为了梦想,为了家人,为了自己不断奋斗着,努力工作。 今天就让我带着大家一起回顾高级运维工程师打怪升级之路。 运维工程师在刚入行阶段是一很苦逼的,可能干着修电脑、掐网线、搬机器的活,显得没地位!时间也很碎片化,各种零碎的琐事围绕着你,也很难体现个人价值,渐渐的对行业很迷茫,觉得没什么发展前途。 这些枯燥无味工作的确会使人匮乏!技术是枯燥无味的...

李振良的技术博客 1万+

RTOS与Linux功能差异与应用场景全面对比

在嵌入式系统的开发中,操作系统的选择至关重要。和是两种广泛应用的操作系统,它们在功能、设计目标以及应用领域中各具优势。随着嵌入式系统的不断发展,已成为嵌入式行业的大趋势。那么,这两者到底有什么不同呢?

硬核科技 400

华为OD新系统机试真题 - 获取大写字母瓷砖拼出独特图案数量

华为OD机试新系统真题【获取大写字母瓷砖拼出独特图案数量】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统四月二十九号机试真题【获取大写字母瓷砖拼出独特图案数量】

qq_45776114的博客 1218

运维工程师的打怪升级之路

人生就像一场游戏,这场游戏给我们带来了的许多困难,但是我们为了梦想,为了家人,为了自己不断奋斗着,努力工作。 今天就让我带着大家一起回顾高级运维工程师打怪升级之路。 运维工程师在刚入行阶段是一很苦逼的,可能干着修电脑、掐网线、搬机器的活,显得没地位!时间也很碎片化,各种零碎的琐事围绕着你,也很难体现个人价值,渐渐的对行业很迷茫,觉得没什么发展前途。 这些枯燥无味工作的确会使人匮乏!技术是枯燥...

yaodunlin的博客 6016

软件设计师高频考点—套路题

学习交流的总结

秩沅 2539

[Linux打怪升级之路]-冯诺依曼体系结构和对操作系统的认识_一升级 sask

什么是操作系统呢?简单点来说。

2401_83739727的博客 1061

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

运维工程师打怪升级进阶之路 V2.0

很多读者伙伴们反应总结的很系统、很全面,无论是0基础初学者,还是有基础的入门者,或者是有经验的职场运维工程师们,都反馈此系列文章非常不错! 命名:《运维工程师打怪升级之路》 版本:V1.0版本「2019年1月20日发布」 V1.0.1版本「2019年4月26日更新」 V2.0版本「2019年5月13日发布」 内容概况: 内容由浅入深,从最基础的网络基础开始,逐渐深入系统的学习Linux系统运维知识。然后引入企业项目实战内容,从而让更多学习Linux系统运维的...

采菊东篱下,Python满乾坤! 760

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[转载]运维工程师的打怪升级之路

运维工程师的打怪升级之路 https://www.jishux.com/p/4bd86622bf4f8aaa 努力学习 深入学习.. 初级 1、Linux基础 刚开始阶段需要熟悉Linux/Windows操作系统安装,目录结构、启动流程等。 2、系统管理 主要学习Linux系统,生产环境中基本都在字符界面完成工作,所以要掌握常用的几十个基本管理命令,包括用户管...

weixin_30344131的博客 158

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[Linux打怪升级之路]-冯诺依曼体系结构和对操作系统的认识

本期学习目标:认识冯诺依曼体系结构,认识什么是操作系统,什么是进程。

分享技术 2838

[Linux打怪升级之路]-冯诺依曼体系结构和对操作系统的认识_一升级 sask(1)

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_83739727的博客 1047

打怪升级之小白的大数据之旅(三十九)<Linux常用命令>

打怪升级之小白的大数据之旅(三十九) Linux常用命令 上次回顾 上一章对Linux基础知识以及一些配置进行了分享,本章节我会对一些常用的命令进行分享,我将常用的命令进行了优先级的分类,大家按照这个优先级练习就好。优先级最高的都是我们经常用到的 Linux优先级 VIM我上一章介绍过了哈,这里就不重复了,有需要的小伙伴请看上一章 第一优先级 vi/vim 服务管理类 文件目录类 文件权限类 进程线程类 软件包管理类 crond系统定时任务 第二优先级 用户管理命令 用户组管理命令 搜索查找类 压缩解

不断努力的数据汪 575

[Linux打怪升级之路]-冯诺依曼体系结构和对操作系统的认识_一升级 sask(2)

最全的Linux教程,Linux从入门到精通第一份《Linux从入门到精通》466页内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。

2401_83739821的博客 1072

高级运维工程师的打怪升级之路

上分布式文件系统,并行处理任务,无单点,高可靠,高性能等特性,主流的有FastDFS、MFS、HDFS、Ceph、GFS等。Web服务器性能瓶颈解决了,数据库更为关键,还是采用集群,就拿学的MySQL来说,可以一主多从架构,在此基础上读写分离,主负责写,多从负责读,从库可水平扩展,前面再来个四层负载均衡器,承载千万级PV,妥妥的!主要学习Linux系统,生产环境中基本都在字符界面完成工作,所以要掌握常用的几十个基本管理命令,包括用户管理、磁盘分区、软件包管理、文件权限、文本处理、进程管理、性能分析工具等。

分享技术架构、运维、程序开发经验 664
上一篇: Linux程序管理(小白的“升级打怪”成长之路)
下一篇: Linux日志管理(小白的“打怪升级”成长之路)
deeper_wind
博客等级 码龄2年 262粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值