1.进程
进程就是系统未完成并且正在进行的工作
2.进程的状态
R(Running ##程序正在运行中
S(Sleeping) ##程序正在休眠状态,可以被唤醒
D ##不可以被唤醒的休眠状态
T(stop) ##停止状态,可能是在工作控制(背景暂停)或除错状态
Z(Zombie) ##僵尸状态,程序已经被终止但却无法被移除至内存外
3.查看进程
(1).图形方式查看
方法1:
鼠标点击 System Tools ----> System Monitor
方法2:
执行 gnome-system-monitor 命令
注意:图形方式查看进程只能在开启图形条件下使用
实验:
鼠标点击 Send Key + Ctrcl+Alt+F2 ##关闭图形
##报错;这是由于没有开启虚拟机图形造成的
[root@localhost ~]# gnome-system-monitor
(gnome-system-monitor:2990): Gtk-WARNING **: cannot open display:
鼠标点击 Send Key + Ctrcl+Alt+F1 ##打开图形
[root@localhost ~]# gnome-system-monitor
(2).ps命令
1)一般格式: ps + 参数
具体参数的含义:
-A ##所有进程
a ##关于当前环境中运行的所有进程
-a ##显示当前环境中运行的进程,但不包含环境(shell)本身
x ##列出系统中所有运行包含tty输出设备
f ##显示进程的从属关系(父子关系)
e ##显示进程的详细信息(系统资源的调用)
l ##长列表显示进程的详细信息
u ##显示进程的用户信息
2)常用组合:
ae ##查看更详细的信息,即扩展信息,运行环境里的进程
aef ##显示进程的从属关系
xf ##进程所有的从属关系
实验:
[root@localhost ~]# ps
PID TTY TIME CMD
3693 pts/1 00:00:00 bash
3729 pts/1 00:00:00 ps
#-a不会显示当前的运行环境(shell环境bash)
[root@localhost ~]# ps -a
PID TTY TIME CMD
3208 pts/0 00:00:49 gnome-system-mo
3739 pts/1 00:00:00 ps
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:08 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 0:50 gnome-system-monitor
3693 pts/1 Ss 0:00 -bash
3745 pts/1 R+ 0:00 ps a
##-A表示所有进程
[root@localhost ~]# ps -A
##x表示包含tty输出设备
[root@localhost ~]# ps x
##x与-A表示的含义不同
[root@localhost ~]# ps x | wc -l
137
[root@localhost ~]# ps -A | wc -l
149
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:08 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 0:54 gnome-system-monitor
3693 pts/1 Ss 0:00 -bash
3790 pts/1 R+ 0:00 ps a
##f表示显示从属进程
[root@localhost ~]# ps af
PID TTY STAT TIME COMMAND
3693 pts/1 Ss 0:00 -bash
3791 pts/1 R+ 0:00 \_ ps af
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 0:55 \_ gnome-system-monitor
583 tty1 Ss+ 0:08 /usr/bin/Xorg :0 -background none -verbose -auth /run
##u表示显示用户信息
[root@localhost ~]# ps auf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3693 0.0 0.2 116144 2760 pts/1 Ss 06:35 0:00 -bash
root 3847 0.0 0.1 123352 1280 pts/1 R+ 06:40 0:00 \_ ps auf
root 3154 0.0 0.2 116260 2800 pts/0 Ss 06:14 0:00 /bin/bash
root 3208 3.9 2.8 580948 27960 pts/0 Sl+ 06:15 1:00 \_ gnome-syste
root 583 0.2 3.3 187184 32196 tty1 Ss+ 05:35 0:08 /usr/bin/Xorg :
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:09 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 1:09 gnome-system-monitor
3693 pts/1 Ss 0:00 -bash
3941 pts/1 R+ 0:00 ps a
## e表示详细信息
[root@localhost ~]# ps e
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:09 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash XDG_VTNR=1 SSH_AGENT_PID=2810 XDG_SESSION_I
3208 pts/0 Sl+ 1:10 gnome-system-monitor XDG_VTNR=1 XDG_SESSION_ID=7 SSH_
3693 pts/1 Ss 0:00 -bash XMODIFIERS=@im=ibus LANG=en_US.UTF-8 USER=root
3947 pts/1 R+ 0:00 ps e XDG_SESSION_ID=10 HOSTNAME=localhost SELINUX_ROL
##常用组合
[root@localhost ~]# ps ax
[root@localhost ~]# ps aux
[root@localhost ~]# ps ef
PID TTY STAT TIME COMMAND
3693 pts/1 Ss 0:00 -bash XMODIFIERS=@im=ibus LANG=en_US.UTF-8 USER=root
4002 pts/1 R+ 0:00 \_ ps ef XDG_SESSION_ID=10 HOSTNAME=localhost SELINU
3154 pts/0 Ss 0:00 /bin/bash XDG_VTNR=1 SSH_AGENT_PID=2810 XDG_SESSION_I
3208 pts/0 Sl+ 1:15 \_ gnome-system-monitor XDG_VTNR=1 XDG_SESSION_ID=7
583 tty1 Ss+ 0:09 /usr/bin/Xorg :0 -background none -verbose -auth /run
##显示当前系统进程树
[root@localhost ~]# pstree
2)显示进程指定信息
ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat # -o表示显示进程指定信息
具体参数的含义:
%cpu #显示进程cpu负载
%mem #显示进程内存负载
user #进程用户
group #进程组
comm #进程名称
nice #进程优先级
pid #进程的id
stat #进程状态
stat(进程状态)详细解释:
S #进程状态
l #内存中有锁定空间
N #优先级低
< #优先级高
+ #前台运行
s #顶级进程
实验:
##-o表示显示进程指定信息(option:参数)
[root@localhost ~]# ps -o comm
COMMAND
bash
ps
[root@localhost ~]# ps -o comm,pid
COMMAND PID
bash 3693
ps 4133
[root@localhost ~]# ps -o comm,pid,%cpu
COMMAND PID %CPU
bash 3693 0.0
ps 4135 0.0
[root@localhost ~]# ps -o comm,pid,%cpu,user
COMMAND PID %CPU USER
bash 3693 0.0 root
ps 4137 0.0 root
[root@localhost ~]# ps -o comm,pid,%cpu,user,group
COMMAND PID %CPU USER GROUP
bash 3693 0.0 root root
ps 4139 0.0 root root
[root@localhost ~]# ps -o comm,pid,%cpu,user,group,%mem
COMMAND PID %CPU USER GROUP %MEM
bash 3693 0.0 root root 0.2
ps 4141 0.0 root root 0.1
[root@localhost ~]# ps -o comm,pid,%cpu,user,group,%mem,nice
COMMAND PID %CPU USER GROUP %MEM NI
bash 3693 0.0 root root 0.2 0
ps 4144 0.0 root root 0.1 0
3.进程排序
ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem> #--sort表示排序
具体参数的含义:
+ ##正序
- ##倒序
%cpu ##cpu负载排序
%mem ##内存负载
实验:
##--sort表示排序(在图形界面中操作/-X开启图形连接)
#&表示打入后台,不占用终端
[root@localhost ~]# firefox &
[1] 4335
[root@localhost ~]#
(process:4335): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
4236 pts/1 00:00:00 dbus-launch
4335 pts/1 00:00:00 firefox
4382 pts/1 00:00:00 ps
## +表示正序
[root@localhost ~]# ps --sort=+%cpu
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
4236 pts/1 00:00:00 dbus-launch
4395 pts/1 00:00:00 ps
4335 pts/1 00:00:00 firefox
##一般 -o 与 --sort 结合使用
[root@localhost ~]# ps --sort=+%cpu -o %cpu
%CPU
0.0
0.0
0.0
1.6
[root@localhost ~]# ps --sort=+%cpu -o %cpu,comm
%CPU COMMAND
0.0 bash
0.0 dbus-launch
0.0 ps
1.3 firefox
## -表示逆序
[root@localhost ~]# ps --sort=-%cpu -o %cpu,comm
%CPU COMMAND
0.7 firefox
0.0 bash
0.0 dbus-launch
0.0 ps
[root@localhost ~]# ps --sort=-%cpu -o %mem,comm
%MEM COMMAND
11.4 firefox
0.2 bash
0.0 dbus-launch
0.1 ps
[root@localhost ~]# ps ax --sort=-%cpu -o %mem,comm
[root@localhost ~]# ps ax --sort=+%cpu -o %mem,comm
实际应用:将cpu排在前5的(从大到小排)进程的pid取出
##由于是从大到小的排所以必须是逆序!
[root@localhost ~]# ps ax --sort=-%cpu -o pid | head -n 5
PID
3208
2918
583
4335
[root@localhost ~]# ps ax --sort=-%cpu -o pid | head -n 6
PID
3208
2918
583
4335
1
[root@localhost ~]# ps ax --sort=-%cpu -o pid | head -n 6 | tail -n 5
3208
2918
583
4335
1
4.进程优先级
(1).进程的优先级范围(数值越小优先级越高)
-20~19
(2).优先级查看
ps ax -o nice,comm
(3).指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim & ##开启vim并且指定程序优先级为-5
(4).改变进程优先级
reince -n 优先级数字 进程pid
renice -n -5 1806 ##改变1806进程的优先级为-5(1806进程已存在)
实验:
##数值越小优先级越高
#firefox优先级为0
[root@localhost ~]# ps -o nice,comm,pid
NI COMMAND PID
0 bash 4196
0 dbus-launch 4236
0 firefox 4335
0 ps 4821
##renice表示更改进程优先级;5比0级数低
[root@localhost ~]# renice -n 5 4335
4335 (process ID) old priority 0, new priority 5
[root@localhost ~]# ps -o nice,comm,pid
NI COMMAND PID
0 bash 4196
0 dbus-launch 4236
5 firefox 4335
0 ps 4827
## N 表示优先级级别低
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:14 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 2:17 gnome-system-monitor
4196 pts/1 Ss 0:00 -bash
4236 pts/1 S 0:00 dbus-launch --autolaunch=946cb0e817ea4adb916183df8c4f
4335 pts/1 SNl 0:01 /usr/lib64/firefox/firefox
4829 pts/1 R+ 0:00 ps a
##-5比5级数高
[root@localhost ~]# renice -n -5 4335
4335 (process ID) old priority 5, new priority -5
[root@localhost ~]# ps -o nice,comm,pid
NI COMMAND PID
0 bash 4196
0 dbus-launch 4236
-5 firefox 4335
0 ps 4876
## < 表示优先级高
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
583 tty1 Ss+ 0:14 /usr/bin/Xorg :0 -background none -verbose -auth /run
3154 pts/0 Ss 0:00 /bin/bash
3208 pts/0 Sl+ 2:22 gnome-system-monitor
4196 pts/1 Ss 0:00 -bash
4236 pts/1 S 0:00 dbus-launch --autolaunch=946cb0e817ea4adb916183df8c4f
4335 pts/1 S<l 0:01 /usr/lib64/firefox/firefox
4879 pts/1 R+ 0:00 ps a
##nice表示指定优先级开启进程
##vim不能打入后台运行,它一定会占用终端,故它的状态为Stopped
[root@localhost ~]# nice -n -6 vim &
[2] 5548
[root@localhost ~]# ps -o nice,comm,pid
NI COMMAND PID
0 bash 4196
0 dbus-launch 4236
-5 firefox 4335
-6 vim 5548
0 ps 5553
[2]+ Stopped nice -n -6 vim
5.环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台(暂停进程)
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
实验:
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
4236 pts/1 00:00:00 dbus-launch
4335 pts/1 00:00:01 firefox
5548 pts/1 00:00:00 vim
5640 pts/1 00:00:00 ps
[root@localhost ~]# gedit file &
[3] 5646
[root@localhost ~]#
** (gedit:5646): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-0rjtjsza9E: Connection refused
(gedit:5646): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
4236 pts/1 00:00:00 dbus-launch
4335 pts/1 00:00:01 firefox
5548 pts/1 00:00:00 vim
5646 pts/1 00:00:00 gedit
5654 pts/1 00:00:00 ps
## jobs 表示查看被打入后台的所有进程
[root@localhost ~]# jobs
[1] Running firefox &
[2]+ Stopped nice -n -6 vim
[3]- Running gedit file &
## fg 表示将后台程序调回前台
## Ctrl+Z 表示暂停进程
[root@localhost ~]# fg 3
gedit file
^Z
[3]+ Stopped gedit file
[root@localhost ~]# jobs
[1] Running firefox &
[2]- Stopped nice -n -6 vim
[3]+ Stopped gedit file
## Ctrl+C 表示结束进程
[root@localhost ~]# fg
gedit file
^C
[root@localhost ~]# jobs
[1]- Running firefox &
[2]+ Stopped nice -n -6 vim
[root@localhost ~]# jobs
[2]+ Stopped nice -n -6 vim
[3]- Running firefox &
##Ctrl+Z暂停进程
[root@localhost ~]# fg 3
firefox
^Z
[3]+ Stopped firefox
[root@localhost ~]# jobs
[2]- Stopped nice -n -6 vim
[3]+ Stopped firefox
## bg 表示将暂停的程序运行
[root@localhost ~]# bg 3
[3]+ firefox &
[root@localhost ~]# jobs
[2]+ Stopped nice -n -6 vim
[3]- Running firefox &
5.进程信号
(1)常用信号等级
1 ##进程重新加载配置(相当于reload)
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程(可能会被阻塞)
18 ##运行暂停的进程
19 ##强行暂停某个进程(不能被阻塞)
20 ##暂停某个进程(可以被阻塞)
man 7 signal ##查看信号详细信息
kill -信号等级 进程pid
killall -信号等级 进程名字
pkill -u student -信号等级
实验:
##kill是发送信号,而不是杀死进程
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
5548 pts/1 00:00:00 vim
6280 pts/1 00:00:00 ps
## -9表示强行结束单个进程(不能被阻塞)
[root@localhost ~]# kill -9 5548
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6285 pts/1 00:00:00 ps
[2]+ Killed nice -n -6 vim
## -5表示正常关闭进程(可能会被阻塞)
[root@localhost ~]# kill -15 4196
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6300 pts/1 00:00:00 ps
[root@localhost ~]# gedit &
[1] 6395
[root@localhost ~]#
** (gedit:6395): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-0rjtjsza9E: Connection refused
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6395 pts/1 00:00:00 gedit
6399 pts/1 00:00:00 dbus-launch
6411 pts/1 00:00:00 ps
[root@localhost ~]# jobs
[1]+ Running gedit &
## -19表示暂停某个进程(不能被阻塞)
[root@localhost ~]# kill -19 6395
[root@localhost ~]# jobs
[1]+ Stopped gedit
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6395 pts/1 00:00:00 gedit
6399 pts/1 00:00:00 dbus-launch
6437 pts/1 00:00:00 ps
## -18表示运行暂停的进程
[root@localhost ~]# kill -18 6395
[root@localhost ~]# jobs
[1]+ Running gedit &
## -20表示暂停某个进程(可以被阻塞)
[root@localhost ~]# gedit &
[1] 6600
[root@localhost ~]#
** (gedit:6600): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-0rjtjsza9E: Connection refused
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6616 pts/1 00:00:00 ps
[root@localhost ~]# jobs
[1]+ Running gedit &
[root@localhost ~]# kill -20 6600
[root@localhost ~]# jobs
[1]+ Stopped gedit
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6623 pts/1 00:00:00 ps
##kill与killall的区别
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6694 pts/1 00:00:00 ps
[root@localhost ~]# vim &
[2] 6705
[root@localhost ~]# vim &
[3] 6706
[2]+ Stopped vim
[root@localhost ~]# vim &
[4] 6708
[3]+ Stopped vim
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6705 pts/1 00:00:00 vim
6706 pts/1 00:00:00 vim
6708 pts/1 00:00:00 vim
6710 pts/1 00:00:00 ps
[4]+ Stopped vim
[root@localhost ~]# jobs
[1] Stopped gedit
[2] Stopped vim
[3]- Stopped vim
[4]+ Stopped vim
## kill -9 表示结束单个进程
[root@localhost ~]# kill -9 6705
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6706 pts/1 00:00:00 vim
6708 pts/1 00:00:00 vim
6716 pts/1 00:00:00 ps
[2] Killed vim
## killall -9 表示结束多个进程
[root@localhost ~]# killall -9 vim
[3]- Killed vim
[4]+ Killed vim
[root@localhost ~]# ps
PID TTY TIME CMD
4196 pts/1 00:00:00 bash
6537 pts/1 00:00:00 dbus-launch
6600 pts/1 00:00:00 gedit
6733 pts/1 00:00:00 ps
##强行结束关于student用户的所有进程
[root@localhost ~]# pkill -9 -u student
SIGHUP 终止进程 终端线路挂断
SIGINT 终止进程 中断进程
SIGQUIT 建立CORE文件终止进程,并且生成core文件
SIGILL 建立CORE文件 非法指令
SIGTRAP 建立CORE文件 跟踪自陷
SIGBUS 建立CORE文件 总线错误
SIGSEGV 建立CORE文件 段非法错误
SIGFPE 建立CORE文件 浮点异常
SIGIOT 建立CORE文件 执行I/O自陷
SIGKILL 终止进程 杀死进程
SIGPIPE 终止进程 向一个没有读进程的管道写数据
SIGALARM 终止进程 计时器到时
SIGTERM 终止进程 软件终止信号
SIGSTOP 停止进程 非终端来的停止信号
SIGTSTP 停止进程 终端来的停止信号
SIGCONT 忽略信号 继续执行一个停止的进程
SIGURG 忽略信号 I/O紧急信号
SIGIO 忽略信号 描述符上可以进行I/O
SIGCHLD 忽略信号 当子进程停止或退出时通知父进程
SIGTTOU 停止进程 后台进程写终端
SIGTTIN 停止进程 后台进程读终端
SIGXGPU 终止进程 CPU时限超时
SIGXFSZ 终止进程 文件长度过长
SIGWINCH 忽略信号 窗口大小发生变化
SIGPROF 终止进程 统计分布图用计时器到时
SIGUSR1 终止进程 用户定义信号1
SIGUSR2 终止进程 用户定义信号2
SIGVTALRM 终止进程 虚拟计时器到时
参数解释:
1) SIGHUP
本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控
制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端
不再关联.
2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出
3) SIGQUIT
SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制. 进程在因收到
SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信
号.
4) SIGILL
执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行
数据段. 堆栈溢出时也有可能产生这个信号.
5) SIGTRAP
由断点指令或其它trap指令产生. 由debugger使用.
6) SIGABRT
程序自己发现错误并调用abort时产生.
6) SIGIOT
在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.
7) SIGBUS
非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长
的整数, 但其地址不是4的倍数.
8) SIGFPE
在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢
出及除数为0等其它所有的算术的错误.
9) SIGKILL
用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.
10) SIGUSR1
留给用户使用
11) SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.
12) SIGUSR2 留给用户使用
13) SIGPIPE Broken pipe
14) SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该
信号.
15) SIGTERM 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和
处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这
个信号.
17) SIGCHLD 子进程结束时, 父进程会收到这个信号.
18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用
一个handler来让程序在由stopped状态变为继续执行时完成特定的
工作. 例如, 重新显示提示符
19) SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别:
该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.
20) SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时
(通常是Ctrl-Z)发出这个信号
21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN
信号. 缺省时这些进程会停止执行.
22) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到.
23) SIGURG 有"紧急"数据或out-of-band数据到达socket时产生.
24) SIGXCPU 超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/
改变
25) SIGXFSZ 超过文件大小资源限制.
26) SIGVTALRM 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.
27) SIGPROF 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的
时间.
28) SIGWINCH 窗口大小改变时发出.
29) SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作.
30) SIGPWR Power failure
有两个信号可以停止进程:SIGTERM和SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,
您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。
对于SIGKILL信号,进程是不能忽略的。这是一个 “我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里
7.用户登陆审记
w ##查看正在使用当前系统的用户
w -f ##-f查看使用地点(来源)
w -i ##-i查看ip
/var/run/utmp ##记录正在使用当前系统的用户信息
last ##查看使用过并退出的用户
/var/log/wtmp ##记录使用过并退出的用户信息
lastb ##查看试图登陆但没成功的用户
/var/log/btmp ##记录试图登陆但没成功的用户信息
实验:
##清空用户登陆信息
[root@node2 ~]# > /var/run/utmp
[root@node2 ~]# w
11:45:56 up 2:41, 0 users, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
[root@node2 ~]# > /var/log/wtmp
[root@node2 ~]# last
wtmp begins Sun Oct 14 11:45:59 2018
[root@node2 ~]# > /var/log/btmp
[root@node2 ~]# lastb
btmp begins Sun Oct 14 11:46:10 2018
[root@node1 ~]# ssh root@172.25.254.230
##查看正在使用当前系统的用户
[root@node2 ~]# w
11:47:44 up 2:43, 1 user, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 11:46 32.00s 0.02s 0.02s -bash
##-f表示查看来源
[root@node2 ~]# w -f
11:47:51 up 2:43, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 172.25.254.130 11:46 39.00s 0.02s 0.02s -bash
##-i表示查看ip
[root@node2 ~]# w -i
11:47:55 up 2:43, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 172.25.254.130 11:46 43.00s 0.02s 0.02s -bash
##强制断开134主机连接本机
[root@node2 ~]# ps axu | grep pts/1
root 6288 0.0 0.5 135680 4872 ? Ss 11:46 0:00 sshd: root@pts/1
root 6293 0.0 0.2 116144 2604 pts/1 Ss+ 11:46 0:00 -bash
root 6380 0.0 0.0 112640 940 pts/0 R+ 11:49 0:00 grep --color=auto pts/1
[root@node2 ~]# kill -9 6293
[root@node2 ~]# Connection to 172.25.254.230 closed.
##查看使用过并退出的用户信息
[root@node2 ~]# > /var/log/wtmp
[root@node2 ~]# last
wtmp begins Sun Oct 14 11:50:03 2018
[root@node1 ~]# ssh root@172.25.254.230
root@172.25.254.230's password:
Last login: Sun Oct 14 11:46:58 2018 from 172.25.254.130
[root@node2 ~]# exit
logout
Connection to 172.25.254.230 closed.
[root@node2 ~]# last
root pts/1 172.25.254.130 Sun Oct 14 11:50 - 11:50 (00:00)
wtmp begins Sun Oct 14 11:50:39 2018
[root@node1 ~]# ssh root@172.25.254.230
root@172.25.254.230's password:
Permission denied, please try again.
root@172.25.254.230's password:
##查看试图登陆但没成功的用户
[root@node2 ~]# lastb
root ssh:notty 172.25.254.130 Sun Oct 14 11:52 - 11:52 (00:00)
btmp begins Sun Oct 14 11:52:21 2018
8.top命令
top ##监控系统负载工具
s #修改进程刷新间隔时间
m #根据内存占有率进行排序
c #根据 cpu 占有率进行排序
u #后面输入用户名 , 用来查看该用户发起的所有进程
k #后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20)用来给某个进程发起一信号
q #退出进程查看界面
h #显示 top 命令的帮助
[root@localhost ~]# top
补充:
1.鼠标动不了怎么解决?
Ctrl+Alt+F2 进入虚拟机控制台
init 3 关闭图形(ini表示初始化;进入第三个级别/无图形网络模式/)
init 5 打开图形(进入第三个级别/有图形网络模式/)
2.若其他用户对文件不可写但wq!保存成功,则这是否能说明它对文件可写?
[root@localhost ~]# rm -rf /mnt/*
[root@localhost ~]# mkdir /mnt/test
[root@localhost ~]# chmod 777 /mnt/test
[root@localhost ~]# cd /mnt/test
[root@localhost test]# touch file
[root@localhost test]# vim file
[root@localhost test]# cat file
hello
[root@localhost test]# chmod 700 /mnt/test/*
##查看到其他用户对此文件不可写; -li表示查看文件ID
[root@localhost test]# ls -li file
27914943 -rwx------. 1 root root 6 Oct 9 07:59 file
[root@localhost test]# su - student
Last login: Tue Oct 9 07:54:53 EDT 2018 on pts/0
[student@localhost ~]$ cd /mnt/test
##wq!强制保存退出
[student@localhost test]$ vim file
[student@localhost test]$ cat file
word
#此时文件id发生改变了;说明这是文件名相同但本质不同的两个文件,即用户对文件不可写!
[student@localhost test]$ ls -li file
27914942 -rwx------. 1 student student 5 Oct 9 08:00 file
3.如何连wifi?
模拟 ping baidu.com 过程如下:
主机 路由器(双网卡) 百度
172.25.254.34 172.25.254.11 220.181.111.100 220.181.111.188
##只有相同网段的主机才能通信
##查看网关
[kiosk@foundation34 Desktop]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.254 0.0.0.0 UG 425 0 0 br0
172.25.34.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
172.25.254.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
先连接wifi
[root@foundation34 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.254 0.0.0.0 UG 425 0 0 br0
0.0.0.0 192.168.43.1 0.0.0.0 UG 600 0 0 wlp3s0
172.25.34.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
172.25.254.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@foundation34 ~]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
^C
--- baidu.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
断开wifi
[root@foundation34 ~]# cd /etc/sysconfig/network-scripts/
[root@foundation34 network-scripts]# vim ifcfg-br0
####################################
#GATEWAY0=172.25.254.254 注释掉网关
[root@foundation34 network-scripts]# systemctl restart network
[root@foundation34 network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.25.34.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
172.25.254.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
连接wifi(相当于路由器)
[root@foundation34 network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.43.1 0.0.0.0 UG 600 0 0 wlp3s0
172.25.34.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
172.25.254.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@foundation34 network-scripts]# ping www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172: icmp_seq=1 ttl=53 time=146 ms
^C64 bytes from 183.232.231.172: icmp_seq=2 ttl=53 time=56.1 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 56.160/101.538/146.916/45.378 ms