基于Linux的进程及服务的控制


1.什么是进程?

     进程是一个正在运行的程序的一个实例 有两部分构成 :一个内核对象(管理进程,同时保存进程统计信息)加一个地址空间(包含所有可执行文件或DLL模块的代码和数据以及动态内存分配)。

    线程:进程要做任何事情,就必须有一个线程在他的上下文中运行来执行进程地址空间包含的代码。当系统创建一个进程的时候,会主动为进程创建第一个线程,即主线程。这个线程来创建之后的线程。线程以循环(轮询或轮流)方式。
2.图形的进程查看方式
gnome-system-monitor


ls /proc/  #查看进程


3.查看进程的命令

whatis ps
man ps                    #查看常用参数

ps                    


ps    a         ##当前环境相关进程


 ps   -a         ##在当前中算中运行的进程但不包含当前环境进程信息


ps    -A/-e            ##系统所有进程


ps    x        ##查看含有输出终端的进程


ps    f         ##查看进程的从属关系


ps    u    #进程所有人

    
ps ax -o comm,nice,%cpu,%mem,pid,user,group,stat       ##查看进程的comm,nice,%cpu,%mem,pid,user,group,stat 信息

ps ax --sort=%cpu      # #查看进程的cpu并按照正序排列


ps ax --sort=-%cpu      # #查看进程的cpu并按照倒序排列


ps ax --sort=%mem     ##ax表示当前环境相关进程,查看进程的sort,并且按照正序对其进行排列
ps ax --sort=  -  %mem    ##查看进程的sort,并且按照逆序对其进行排列(与上类似)

4进程优先级
进程状态
S            #进程状态在运行
s            #此进程为顶级进程(如下图所示,若进程状态STAT显示Ss代表现在此进程正在运行,并且进程优先级最高)


T            #若进程状态STAT显示T表示进程是暂停的
<            #若进程状态STAT显示<表示进程的优先及高
N           #若进程状态STAT显示N表示进程优先级低
l             #若进程状态STAT显示I 表示进程在内存中有锁定的空间

ps    -o     nice ,  comm ,  pid              #查看进程的nice ,comm ,pid  的信息

renice -n -5 pid          #修改进程的优先级(将进程的优先级修改成-5,如下图所示原先3338的进程优先级为0,经过此语句后进程优先级变为-5)


nice    -n     -5    命令   &                  #指定优先级开启进程-5即将进程的优先级改成-5,在进程中负数的优先级大于正数

5.进程前后台的调用

ctrl+z                 #将占用终端的进程打入后台停止
jobs                  #查看被打入后台的进程名称


bg        jobsnum                ##将指定进程在后台运行
fg         jobsnum                ##将指定进程调会前台
ctrl+c                                 ##将占用当前终端的进程结束


6.信号

  无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个"kill"命令强制终结它。在这个教程中,我们将展示给你多种方式使用"kill"命令终结应用。

   当你执行一个"kill"命令,你实际上发送了一个信号给系统,让它去终结不正常的应用。总共有60个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。
kill    -1     PID             #进程不停止情况下重新加载配置


kill   -2   PID                    #清除进程在内存中的数据
kill   -3    PID                   #清楚鼠标在进程内的数据
9 #强行结束进程(不能被阻塞)


kill    -15     PID                     #正常关闭进程(程序被打入后台后可停止)
kill     -18    PID                     #运行停止进程(程序执行窗口会被关闭)
kill     -19     PID                    #暂停进程,不能被阻塞
kill     -20     PID                    #暂停进程,能被阻塞


kill 信号 pid          语句解释:kill对象是进程ID               示例语句:  kill -9 proc_id
killall 信号 pid      语句解释: killall对象是进程名字      示例语句:killall -9 proc_name

7.服务的控管
systemctl start sshd                            ##开启服务器
systemctl stop sshd                           ##关闭服务器
systemctl status sshd                        ##显示服务器的状态
systemctl restart sshd                       ##服务器重起(具体执行过程可看下图)


systemctl enable sshd                      #开机启动(比如Linux虚拟机下载某些程序后,在下次开机时下载的东西会被清除,调用此语句,可在下次开机时启动此进程,sshd为要保护的进程,)
systemctl disable sshd                     #开机关闭(在上面语句后,每次开机会执行开启你设置的进程,调用此语句,可使得进程在开机时不再启动)
systemctl list-units                             #列出系统中正在运行的程序


systemctl dependencies sshd                      #列出系统的依赖关系


systemctl mask sshd.service                                             ##冻结服务(此语句可将sshd.service服务停止,攻击者就不能调用此进程)
systemctl unmask sshd.service                                         ##解冻(此语句可将sshd.service服务解冻,攻击者就便能调用此进程)
systemctl set-default multi-user sshd.service                 ##开机不启动图形(在虚拟机中执行此语句,虚拟机在启动时就不会显示虚拟机的桌面图像,而只是一个命令输入窗口,可在窗口中执行任意命令) 


init 5                    #进入有图形模式(上面的语句使得虚拟机启动后不加载图形,此语句是对上面操作的一个回复语句)

猜你喜欢

转载自blog.csdn.net/qq_41141896/article/details/81779799