1. Red Hat Enterprise Linux 7
1.1. 什么是进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。简单的说,进程就是系统正在做的事情。
1.2. 进程状态
名称 |
ps状态 |
解释 |
运行 |
R : runnable (on run queue) |
正在运行或在运行队列中等待 |
中断 |
S : sleeping |
休眠中, 受阻, 在等待某个条件的形成或接受到信号 |
停止 |
T : traced or stopped |
进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行 |
僵死 |
Z : a defunct (“zombie”) process |
进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 |
不可中断 |
D : uninterruptible sleep (usually IO) |
收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 |
1.3. 图形中如何查看进程
- 直接打开system monitor
- 用命令gnome-system-monitor打开进程管理器
1.4. 如何用命令查看进程
ps
1 2 3 4 5 6 7
| ps ps -a ps -x ps -u ps -l ps -f ps -e
|
1 2 3 4
| ps aux | grep 进程关键字 ps ax -o %cpu,%mem,user,pid,comm ps aux --sort +|-%cpu|%mem... ps ax -o gid --sort -%cpu | grep -v GID | head -5
|
1.5. 如何控制shell重进程的前后台调用
1 2 3 4 5 6
| 命令& ##进程在shell后台运行 ctrl +z ##把占用shell的进程打入后台停止 jobs ##查看被打入后台的进程信息 fg job号 ##把指定进程调回前台 bg job号 ##运行后台停止进程 ctrl +c ##关闭占用shell进程
|
1.6. 如何用命令控制进程(man 7 signal)
1)信号
1 2 3 4 5 6 7 8
| 信号 1 ##reload进程 信号 2 ##ctrl +c 删除进程在内存中的信息 信号 3 ##清除内存中的鼠标信息 信号 9 ##强行关闭进程 信号 15 ##正常关闭进程 信号 18 ##开启停止的进程 信号 19 ##停止正在运行的进程 信号 20 ##ctrl +z
|
2)信号发起
1 2 3
| kill 信号 pid killall 信号 进程名称 pkill -u username ##结束某个用户的所有进程
|
1.7. 用户登陆监控
1 2 3 4
| w ##查看当前使用系统的用户 w -f ##查看当前使用系统的用户并显示使用地点 last ##查看登陆过系统的用户 lastb ##查看试图登陆但没有成功的用户
|
1.8. top命令
在shell中显示进程管理器
1 2 3 4 5 6
| u username k 信号 h 帮助 s 改变刷新速度 m 以内存占用量排序 c 以cpu占用率排序
|
1.9. pstree 进程树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| [root@localhost ~] systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager─┬─dhclient │ └─3*[{NetworkManager}] ├─2*[abrt-watch-log] ├─abrtd ├─accounts-daemon───2*[{accounts-daemon}] ├─alsactl ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} │ └─3*[{at-spi-bus-laun}] ├─at-spi2-registr───{at-spi2-registr} ├─atd ├─auditd─┬─audispd─┬─sedispatch │ │ └─{audispd} │ └─{auditd} ├─avahi-daemon───avahi-daemon ├─chronyd ├─colord───{colord} ├─crond ├─2*[dbus-daemon───{dbus-daemon}] ├─dbus-launch ├─dconf-service───2*[{dconf-service}] ├─firewalld───{firewalld} ├─gdm─┬─gdm-simple-slav─┬─Xorg │ │ ├─gdm-session-wor─┬─gnome-session─┬─gnome-settings-───3*[{gnome-settin+ │ │ │ │ ├─gnome-shell───4*[{gnome-shell}] │ │ │ │ └─3*[{gnome-session}] │ │ │ └─2*[{gdm-session-wor}] │ │ └─2*[{gdm-simple-slav}] │ └─2*[{gdm}] ├─goa-daemon───3*[{goa-daemon}] ├─ibus-daemon─┬─ibus-dconf───2*[{ibus-dconf}] │ ├─ibus-engine-sim───{ibus-engine-sim} │ └─2*[{ibus-daemon}] ├─ibus-x11───{ibus-x11} ├─iprdump ├─iprinit ├─iprupdate ├─ksmtuned───sleep ├─libvirtd───10*[{libvirtd}] ├─lsmd ├─lvmetad ├─master─┬─pickup │ └─qmgr ├─mission-control───2*[{mission-control}] ├─polkitd───5*[{polkitd}] ├─pulseaudio───2*[{pulseaudio}] ├─rhsmcertd ├─rpc.statd ├─rpcbind ├─rsyslogd───2*[{rsyslogd}] ├─rtkit-daemon───2*[{rtkit-daemon}] ├─smartd ├─sshd───sshd───bash───pstree ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─tuned───4*[{tuned}] └─upowerd───2*[{upowerd}]
|