这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战
Linux 小知识 丨进程命令
top ps kill
Top 命令
- top 实时显示所有的进程信息
- top -c 实时显示所有的进程信息(显示完整命令)
- top -p PID 实时显示指定进程的信息
- 结束监控快捷键: q
实时监控显示process(进程)的动态
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
[root@VM-8-10-centos ~]# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2104608 root 20 0 63648 11292 3672 S 0.3 0.3 13:36.33 barad_agent
2104609 root 20 0 512164 18688 4184 S 0.3 0.5 80:15.06 barad_agent
1 root 20 0 185172 11680 8752 S 0.0 0.3 32:34.64 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.92 kthreadd
# PID 每个进程的ID
# USER 属于哪个用户
# PR 进程的优先级
# NI 进程的优先级, 负数-> 高优先级 正数 低优先级
# VIRT 当前进程使用虚拟内存的总量
# S 当前进程的运行状态 S Sleep睡眠 R Run 运行状态
# COMMAND 命令的名字
# q 结束
带参数选项的top命令
top -c
#COMMAND 显示完整的命令
[root@VM-8-10-centos ~]# top -c
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2104608 root 20 0 63648 11292 3672 S 0.3 0.3 13:36.50 barad_agent
2104609 root 20 0 512164 18688 4184 S 0.3 0.5 80:16.07 barad_agent
3821042 root 20 0 22836 7416 5212 S 0.3 0.2 61:23.27 /usr/local/qcloud/tat_agent/tat_agent
1 root 20 0 185172 11680 8752 S 0.0 0.3 32:34.65 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
2 root 20 0 0 0 0 S 0.0 0.0 0:00.92 [kthreadd]
top -p pid
# 只监控一条进程
[root@VM-8-10-centos ~]# top -p 1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 185172 11680 8752 S 0.0 0.3 32:34.67 systemd
ps 命令
查看进程信息, 获取当前时刻的进程信息, 无法实时监控
- ps 显示当前正在运行的进程信息
- ps -A 显示系统中所有的进程信息
- ps -ef 显示系统中所有的进程信息(完整信息)
- os -u 用户名 显示指定用户的进程信息
ps [option] [--help] # 查看进程信息
[root@VM-8-10-centos ~]# ps #显示当前系统正在运行的进程信息
PID TTY TIME CMD
2689338 pts/0 00:00:00 bash
2697641 pts/0 00:00:00 ps
[root@VM-8-10-centos ~]# ps -A #显示系统中所有的进程信息
PID TTY TIME CMD
1 ? 00:32:34 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
[root@VM-8-10-centos ~]# ps -ef # 显示完整信息
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 9月15 ? 00:32:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
root 2 0 0 9月15 ? 00:00:00 [kthreadd]
root 3 2 0 9月15 ? 00:00:00 [rcu_gp]
root 4 2 0 9月15 ? 00:00:00 [rcu_par_gp]
root 6 2 0 9月15 ? 00:00:00 [kworker/0:0H-events_highpri]
root 9 2 0 9月15 ? 00:00:00 [mm_percpu_wq]
root 10 2 0 9月15 ? 00:02:35 [ksoftirqd/0]
root 11 2 0 9月15 ? 00:10:25 [rcu_sched]
[root@VM-8-10-centos ~]# ps -u # 显示指定用户的进程信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1605 0.0 0.0 16772 1508 tty1 Ss+ 9月15 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root 1606 0.0 0.0 19340 1580 ttyS0 Ss+ 9月15 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220
root 2689338 0.0 0.1 32560 6644 pts/0 Ss 10:19 0:00 -bash
root 2698025 0.0 0.1 59772 3888 pts/0 R+ 11:04 0:00 ps -u
kill 命令
- kill PID
- kill -9 PID
- kill -9 $(ps -ef | grep username)
- killall -u username
终端执行中的程序
kill [-s<信息名称或编号>][程序] # 中断执行中的程序
kill [<信息编号>]
[root@VM-8-10-centos ~]# sudo kill --help
Usage:
kill [options] <pid>|<name>...
Forcibly terminate a process.
Options:
-a, --all do not restrict the name-to-pid conversion to processes
with the same uid as the present process
-s, --signal <signal> send this <signal> instead of SIGTERM
-q, --queue <value> use sigqueue(2), not kill(2), and pass <value> as data
-p, --pid print pids without signaling them
-l, --list[=<signal>] list signal names, or convert a signal number to a name
-L, --table list signal names and numbers
--verbose print pids that will be signaled
-h, --help display this help
-V, --version display version
For more details see kill(1)
举例:
kill 1111 # => 中断 PID 为 1111 的进程
kill -编号 1111 # => 怎样去杀死 1111 的进程
kill -9 1111 # 强制中断
# 编号
For more details see kill(1).
[root@VM-8-10-centos ~]# kill -l
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
# 常用 -9 强制杀死
中断指定用户的进程1
kill -9 $(ps -ef | grep user1) # 终端 用户 user1 的所有进程
# $(ps -ef | grep user1) 将 user1 的所有进程过滤出来
中断指定用户的进程2
killall -u user1