目录
一、进程查看命令
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 - 64 | SIGRTMIN+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、后台进程
驻留在后端运行的进程