进程管理

本文详细介绍Linux系统中的进程管理,包括进程的概念、状态、查看方法、排序、优先级调整等内容,并介绍如何利用信号来控制进程行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值