linux中的ps命令可以列出当前在运行的进程的快照,就是执行ps命令时有哪些进程在执行以及他们是什么状态,
如果想动态地显示进程信息,就可以使用top命令。
进程一般存在几种状态,
1.运行(R) 正在运行或在运行队列中等待。
2.睡眠(S) ,休眠中, 受阻, 在等待某个条件的形成或接受到信号,
3.僵死(Z),僵死一般是进程结束了,进程描述符还在,等着父进程调wait4.
4.停止(T) 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
5.不可中断(D), 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
ps常用命令参数及方法
(1)
ps aux
可以列出当前系统所有内存当中的程序
root@ubuntu:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 24996 3624 ? Ss Apr14 0:05 /sbin/init auto noprompt
root 2 0.0 0.0 0 0 ? S Apr14 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr14 0:02 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Apr14 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Apr14 0:05 [rcu_sched]
root 8 0.0 0.0 0 0 ? S Apr14 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Apr14 0:00 [migration/0]
root 10 0.0 0.0 0 0 ? S Apr14 0:00 [watchdog/0]
其中
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id)
SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。
I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
X 死掉的进程
< 高优先级进程 高优先序的进程
N 低优先 级进程 低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
START 进程启动时间和日期
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令
NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
(2)过滤进程
过滤sshd
root@ubuntu:~#root@ubuntu:~# ps -aux | grep sshd
root 347 0.0 0.3 4540 1932 pts/19 S+ 07:38 0:00 grep --color=auto sshd
root 818 0.0 0.1 10432 924 ? Ss Apr14 0:00 /usr/sbin/sshd -D
root 32269 0.0 0.9 13784 4580 ? Ss 06:12 0:00 sshd: root@pts/19
(3)过滤用户
root@ubuntu:~# ps -aux | grep zhouzh*
root 353 0.0 0.3 4540 2016 pts/19 S+ 07:39 0:00 grep --color=auto zhouzh*
zhouzhe+ 1070 0.0 0.4 6320 2292 ? Ss Apr14 0:00 /lib/systemd/systemd --user
zhouzhe+ 1071 0.0 0.0 7520 12 ? S Apr14 0:00 (sd-pam)
zhouzhe+ 1103 0.0 0.7 48384 3688 ? Sl Apr14 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
zhouzhe+ 1105 0.0 0.4 7788 2388 ? Ss Apr14 0:00 /sbin/upstart --user
zhouzhe+ 1197 0.0 0.5 6740 2544 ? Ss Apr14 0:02 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-OXyJ7Skafh
zhouzhe+ 1198 0.0 0.0 6812 20 ? S Apr14 0:00 upstart-udev-bridge --daemon --user
(4)另外结合kill使用,通过ps查询进程pid等,然后用kill命令杀死进程
绝杀进程,包括其子进程
kill -9 -pid
pid为进程号
也可以
killall 进程名
先使用ps -ef | grep 进程号
查看有没有父进程(PPID表示父进程),和子进程
再一个一个的把子进程和父进程都杀掉
kill -pid
init进程为1
kill -9 -1 相当于关闭系统