1. System V:System V是一种UNIX *** 作系统的启动和关机脚本。
2. Upstart:Upstart是Ubuntu Linux发行版中使用的开机启动管理器。
3. systemd:systemd是Linux内核下常用的开机启动管理工具。
4. SysVinit:SysVinit是一个Unix-like *** 作系统上常用的进程初始化守护进程集成工具。
5. runit:runit 是一个小而快速的 Unix init 系统, 可以在多重平台上运行, 例如 Linux、Solaris、Mac OS X 等
1.1 在Linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)。
1.2 每个进程都可能以两种方式存在,前台和后台。
1.2.1 前台进程:用户目前的屏幕上可以进行 *** 作的,占据了屏幕的进程,例如vim
1.2.2 后台进程:实际上在 *** 作,但屏幕上无法看到的进程,例如mysql服务、ssh等
1.3 一般来说,系统服务都是以后台方式存在,且常驻系统,直到关机才结束。
ps命令用来查看目前系统中,有哪些正在执行,以及它们执行的情况。可以不加任何参数。
PID:进程识别号
TTY:终端机号
TIME:此进程所消耗的CPU时间
CMD:正在执行的命令或进程名
ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
USER:进程执行用户
PID:进程号
%CPU:占用CPU的百分比
%MEM:占用物理内存的百分比
VSZ:占用虚拟内存的大小,单位KB
RSS:占用物理内存的大小,单位KB
TTY:终端
STAT:当前运行状态
S(大写)表示休眠,即sleep
R(大写)表示正在运行
D(大写)表示短期等待
Z(大写)表示僵死进程
START:进程执行的开始时间
TIME:这个进程占用CPU的时间
COMMAND:进程的名字,也可以理解为执行该进程的指令
ps -ef 可以以全格式显示当前所有进程
-e显示所有进程
-f以全格式显示,如下面两幅图所示。
可以看到,/usr/sbin/sshd的进程号为7092,其父进程为1号进程,1号进程是systemd进程,而systemd进程的父进程为0号,也就是没有父进程。即,系统启动后的第一个进程就是systemd进程,systemd进程会启动sshd进程。
再仔细看,sshd: root@pts/1是xshell登陆root用户后的进程,进程号为7183,父进程为7092,也即sshd进程。继续用其他用户远程登陆linux,就会增加7092进程的子进程。
当某个进程执行过程中需要停止,或者已经消耗了太多的系统资源时,可以考虑停止这个进程,使用kill命令。
kill [选项] 进程号
killall 进程名称 这个命令通过进程名称杀死进程,支持通配符,当系统因负载过大而很慢时,这个指令就很有用了。假如abc进程有3个子进程,killall abc就会把abc停止,并且停止其所有3个子进程。
常用选项,
-9 强迫进程立即停止
示例,
4.1 踢掉某个用户
ps -aux | grep sshd
kill 17204 (因为在我这里查到,17204是该用户ssh登陆linux的进程)
4.2 终止远程登陆服务sshd,在适当时候再次重启sshd服务
kill sshd对应的进程号PID
/bin/systemctl start sshd.service
4.3 终止多个gedit,演示killall
比如用gedit打开多个文本文件,然后进程中会出现gedit
killall gedit就会杀掉gedit进程,同时看到文本文档编辑页面被关掉了。
4.4 强制杀掉一个终端
kill -9 10487 强制杀掉10487进程(比如terminal这样的进程,如果不加-9是不可以杀掉的)
pstree [选项] 这条指令可以更加直观的查看进程信息
常用选项,
-p 显示进程的PID
-u 显示进程的所属用户
示例,
5.1 以树状的形式显示进程的PID
pstree -p
5.2 以树状的形式显示进程的用户id
pstree -u
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)