进程管理器使用命令 进程管理三(1)

查看正在运行的进程:ps命令

ps 命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息。

由于在不同的 Linux 发行版上,ps 命令的语法各不相同,Linux 采取了一个折中的方法,即融合各种不同的风格,兼顾那些已经习惯了其它系统上使用 ps 命令的用户。 ps 命令的基本格式如下:(也是最常用的两个,基本作用是一致的) [root@localhost ~]# ps aux #查看系统中所有的进程,使用 BS 操作系统格式,不用加- [root@localhost ~]# ps -le #查看系统中所有的进程,使用 Linux 标准命令格式 选项: # a:显示所有与终端相关的进程 # u:显示进程的用户及内存等信息 # x:显示没有控制终端的进程 # aux:相当于全部显示出来 -l:长格式显示更加详细的信息;比如优先级、父进程的PPID等 -e:显示所有进程; # 例如:光一个ps就是查看一下当前登录产生了哪些进程 [root@localhost ~]# ps PID TTY TIME CMD 7808 pts/4 00:00:00 bash 7837 pts/4 00:00:00 ps [root@localhost ~]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 7808 7804 0 80 0 - 29051 do_wai pts/4 00:00:00 bash 0 R 0 7839 7808 0 80 0 - 38336 - pts/4 00:00:00 ps 可以看到,这次从 pts/4 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。

# 例如 [root@localhost ~]# ps a PID TTY STAT TIME COMMAND 6088 tty1 Ss 0:00 /sbin/agetty --noclear tty1 linux 7227 pts/0 Ss 0:00 -bash 10520 pts/0 R 0:00 ps a [root@localhost ~]# ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 6088 0.0 0.0 110196 852 tty1 Ss 08:24 0:00 /sbin/agetty --noclear tty1 linux root 7227 0.0 0.2 116336 2964 pts/0 Ss 08:35 0:00 -bash root 10521 0.0 0.1 155468 1864 pts/0 R 10:54 0:00 ps u [root@localhost ~]# ps aux 相当于全部显示出来 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? S 08:24 0:00 [kthreadd] root 6088 0.0 0.0 110196 852 tty1 Ss 08:24 0:00 /sbin/agetty --noclear tty1 linux ...... ...... # ps命令输出信息含义 USER 该进程是由哪个用户产生的 PID 进程的ID %CPU 该进程占用CPU百分比,越高说明越耗资源 %MEM 该进程占用物理内存百分比,越高说明越耗资源 VSZ 该进程占用虚拟内存大小(单位KB) swap RSS 该进程占用物理内存大小(单位KB) # TTY 该进程运行的终端 ?: 内核运行的终端 tty1-7: 本地机器运行的终端 # pts/0-255: 远程连接的终端,第一个是0,第二个是1,依次增长 # STAT 进程的状态 START 该进程的启动时间 TIME 该进程占用CPU的运算时间 COMMAND 产生此进程的命令名 []: 内核态的进程(系统内核的 没[]: 用户态的进程(用户的 STAT:进程的状态 D #无法中断的休眠状态(通常处于I/O状态)Ctrl C没用 R #正在运行的状态 running S #处于休眠的状态,可被唤醒 sleep T #暂停或被追踪的状态 可能是在后台暂停或进程处于除错状态 W 进入内存交换(从内核2.6开始无效) X 死掉的进程(少见) Z #僵尸进程 < 优先级高的进程 N 优先级较低的进程 L 被锁进内存 s 父进程(在它之下有子进程开启着) l 以线程的方式运行 | 多进程 进程位于前台

例子:

两台机器同时操作服务器,用一台看另一台的进程

进程管理器使用命令 进程管理三(2)

放后台后变T

#注 jobs 查看后台的东西 bg 数字 重新调用后台的东西 fg 把后台ping放前台

拓展 :

ps 命令排序

ps命令使用排列 o指定查看的列名 看谁放谁 f查看子进程 ps axo ()自由排序 看啥放啥 按user,pid,ppid,%mem,command排序 [root@localhost ~]# ps axo user,pid,ppid,%mem,command |grep sshd root 6957 1 0.4 /usr/sbin/sshd -D root 7223 6957 0.5 sshd: root@pts/0 root 10571 7227 0.0 grep --color=auto sshd

pgrep命令

pgrep pgrep是一个根据名称查找进程ID的命令,返回的是进程ID,若存在多个进程,则分为不同的行返回ID(默认实现)。 [root@localhost ~]# pgrep sshd 6957 12393 13042

pstree命令

[root@localhost ~]# yum install psmisc # 格式 [root@localhost ~]# pstree [选项] [PID或用户名] 选项 -a显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。 -c不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。 -n根据进程 PID 号来排序输出,默认是以程序名排序输出的。 -p显示进程的 PID。 -u显示进程对应的用户名称。 # 在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。 # systemd进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。 [root@localhost ~]# pstree systemd─┬─NetworkManager───2*[{NetworkManager}] 有2个NetworkManager存在 ├─VGAuthService ├─agetty ├─auditd───{auditd} ├─crond ├─dbus-daemon───{dbus-daemon} ├─firewalld───{firewalld} ├─master─┬─pickup │ └─qmgr ├─polkitd───6*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd─┬─sshd───bash─┬─top │ │ └─vim │ └─sshd───bash───pstree ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─tuned───4*[{tuned}] └─vmtoolsd───{vmtoolsd} ps: 目前市面上各种发行版linux操作系统,1号进程基本已经替换成systemd进程,在较早版本的linux,1号进程是init进程。

,