在Linux系统中:触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,成为PID,同时依据启动这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定
程序放在实体磁盘当中,然后透过使用者的执行来触发,触发后会加载到内存中成为一个个体,那就是进程,为了操作系统可管理这个进程,因此进程有给予执行者的权限、属性参数,并包括程序所需要的脚本与数据或文件数据等,最后在给予一个PID
在bash中再调用bash
注意:当父进程存在消灭子进程,父进程会主动再生成一支,要找出父进程并消灭
进程会有父进程以复制的方式产生一个一模一样的子进程,然后被复制出来的子进程再以exec的方式来执行实际要进行的程序,最终成为了一个子进程的存在
常驻在内存中的进程通常是负责一些系统所提供的功能以服务用户各项工作,这些常驻程序被称为:服务(daemon)
一般daemon类型的程序都会加上d在文件名后头
命令后加& 表示将命令放置于背景中执行
工作管理(job control)当我们登入系统取得bash shell之后,在单一终端机接口下同时进行多个工作的行为管理
进行工作管理的行为中,其实每个工作都是当前bash的子进程,彼此之间是有相关性的,无法以job control 的方式由tty1的环境管理tty2的bash
[root@localhost ~]# tar -zpcf /tmp/etc.tar.gz /etc &
[1] 19983
[root@localhost ~]# tar: Removing leading `/' from member names
这样就将打包指令放入了后台运行
完成后会提示
[1]+ Done tar -zpcf /tmp/etc.tar.gz /etc
root@localhost tmp]# ll -h
total 27M
-rw-rw-r-- 1 gyy gyy 27M Feb 10 11:12 etc.tar.gz
消除输出信息
[root@localhost tmp]# tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
[1] 19994
[root@localhost tmp]# ls
etc.tar.gz log.txt
[1]+ Done tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1
这样所有的输出信息就被重定向到了log.txt
1表示工作号码,搭配的还有一个PID
将目前工作丢到背景中暂停:Ctrl+Z
[root@localhost tmp]# vim ~/.bashrc
[1]+ Stopped vim ~/.bashrc
将vim放到了背景中,不需要关闭就能查看bash
[root@localhost tmp]# jobs -l
[1]- 19999 Stopped vim ~/.bashrc
[2]+ 20002 Stopped find / -print
+号表示最近一个被丢进背景的工作,且目前在背景下预设会被取用的那个工作,stopped代表工作状态
无参数取用最近被丢到背景的工作(带+号的)
fg %jobnumber取用指定工作号码的工作
[root@localhost tmp]# find / -prem /7000 > /tmp/text.txt
find: unknown predicate `-prem'
[root@localhost tmp]# find / -perm /7000 > /tmp/text.txt
find: ‘/proc/23068/task/23068/fd/6’: No such file or directory
find: ‘/proc/23068/task/23068/fdinfo/6’: No such file or directory
find: ‘/proc/23068/fd/5’: No such file or directory
find: ‘/proc/23068/fdinfo/5’: No such file or directory
^Z
[1]+ Stopped find / -perm /7000 > /tmp/text.txt
[root@localhost tmp]# jobs ; bg %1 ; jobs
[1]+ Stopped find / -perm /7000 > /tmp/text.txt
[1]+ find / -perm /7000 > /tmp/text.txt &
[1]+ Running find / -perm /7000 > /tmp/text.txt &
man 7 signal 可以查看signal的详细介绍
-9这个signal通常是用在强制删除一个不正常的工作时使用,-15则是以正常步骤结束一项工作
在工作管理中提到的背景指的是在终端机模式下可以避免Ctrl+C中断的一个情景,若退出终端机工作不会继续
有两种脱机运行的办法,at和nohup
例子:nohup ./sleep500.sh &
将这个脚本运行在终端机背景中
只查阅自己bash进程的:ps -l
F:代表这个进程旗标(process flags)说明这个进程的总结权限
4表示此进程的权限为root
1表示此子进程仅进行复制(fork)而没有实际执行(exce)
S:代表这个进程的状态
UID、PID、PPID:拥有者ID、进程ID、父进程ID
C:CPU使用率,单位为百分比
PRI、NI:priority、nice的缩写,代表被CPU执行的优先级,数值越小代表该进程越快被CPU执行
ADDR、SZ、WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般显示 - ;SZ表示此进程用掉了多少内存,WCHAN表示目前进程是否在运作中, - 表示正在运作
TTY:登入者的终端机位置,若为远程登录则使用动态终端接口(pts/n);
TIME:使用掉的COU时间
CMD:造成此进程触发的指令
ps -lA 也比较常用
ps axjf列出类似进程树的进程显示,也可以使用pstree
该进程应该已经执行完毕,或者因故应该要终止了,但是该进程的父进程却无法完整的将该进程结束掉,而造成那个进程一直存在内存当中
当CMD后面还接上
将top的输出重定向到文件:top -b -n 2 > /tmp/top.txt
-A,-U是用ASCII码或者Unicode
-u,-p输出UID和PID
free:观察内存使用情况
uname:查阅系统与核心相关信息
uptime:观察系统启动时间与工作负载
netstat:追踪网络和插槽文件
netstat -tulnp 找出目前系统上已在监听的网络联机及其PID
dmesg:分析核心产生的讯息
vmstat:侦测系统资源变化