Linux下进程管理一

程序与进程(programe and process)
在Linux系统当中,出发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个ID
称为PID,同时依据启发这个程序的用户与相关属性关系,给予这个PID一组权限的设定。
不同的用户执行同一个程序会有不同的执行权限,用户执行程序的过程
如图1

程序(programe):通常为二进制文件,放置在存储媒介
进程(process):进程就是一个正在运行的程序
子进程与父进程:

当我们登录系统时会取得一个bash的shell,然后用这个bash提供的接口去其他执行命令的时候,就会
产生新的PID,那个后来执行的命令的PID就是子进程,这个子进序的PPID就是父进程

如图2


逻辑图:

系统或网络服务:常驻在内存中的程序
特殊程序管理行为:
    Linux机会绝不对当机的,应为在任何时候,他可以将某个卡主的程序杀掉,然后再重新执行该程序
    而不用重新启动,如果我们在Linux下文字界面登入,当屏幕当中显示的错误信息是死掉,这时就可以按
    Alt+[F1]...[F7]来切换到其他终端机界面,然后使用ps -aux找出刚刚发生错误的进程,然后kill掉就可以了。
bash环境下的工作管理(job control)
当我们登入bash之后,就取得一个bash的PID,在这个PID接口下我们可以进行多个工作
cp file1 file2 &
        &:表示这个file1文件复制到file2,而且置于背景中执行,而当这个命令执行完毕时,系统会在终端显示完成的消息。
什么是工作管理?
    在进行工作管理的行为中,其实每一个工作都是目前bash的子进程,即彼此之间是有相关性的,不能以job control的方式在TTY
    下去管理tty2的bash。
进行job control必须注意到的限制是:
                1.这些工作所触发的进程必须来自以你的shell的子进程
                2.前景:你可以控制与下达命令的这个环境称之为前景工作
                3.背景:可以自动运行的工作,无法使用ctrl +c终止他,可以使用bg/fg呼叫该工作
                4.背景中执行的进程不等等待终端的输入
                
将目前工作丢掉背景中【暂停】:crtl+Z
观察目前的背景工作状态:jobs
jobs [-lrs]
        -l:list
        -r:running
        -s:stop
将背景工作调到前景处理:fg %jobnumber
让工作在背景下的状态运作:bg &jobnumber
管理背景当中的工作进程:kill -signal %jobnumber
kill :
    -l:这个是L的小写,列出目前kill能够使用的讯号
    -1:重新读取一次参数的配置文件
    -2:代表由键盘输入ctrl+c同样的动作
    -9:立刻强制删除一个动作
    -15:以正常的程序方式终止一项工作
脱机管理问题
我们在工作管理当中提到的‘背景’指的是在终端机模式下可以避免ctrl+c终端一个进程的情景下,并不是
真的后台执行,工作管理依旧与终端有关系,当远程登录执行&放到背景进程,在工作中尚未完成的时候
结束你脱机工作,那么进程就会被中断。
nohup [指令与参数] <==在终端前景
nohup [指令与参数] & <==在终端后景
进程的观察
ps:将某个时间点的进程运行情况截取下来
    ps aux 观察系统所有的进程数据
    ps -lA 也就能够所观察所有系统数据
    ps axjf 连同部分进程树状态
程序管理:
        kill -signal PID
        kill -signal #M :后面直接加数字:这个数字是代表PID
        kill -signal %jobnumber 代表前景或背景工作
killall [ieI] [command name]
    -i:interactive的意思,交互式的
    -e:exact的意思
    -I:指令名称忽略大小写
进程的执行顺序:
        由于PRI是核心动态调整的,我们用户也无权干涉PRI,调整进程优先级,就得要透过NICE值,这个

        NICE就是下图的NI,PRI(new)=PRI(old)+NICE,PRI越小越早被执行


    注:nice值可以调整的范围-20~19
        root可以随意调整自己及他人的进程nice值
        一般用户仅可以调整自己进程的nice值且范围是0~19
        一般用户仅可将nice值越调越高
    nice [-n 数字] command
    一存在进程:
        renice [number] PID

注:整个nice值是可以在父进程传递给子进程的

系统资源查看:以下命令在日常的服务器维护使用
    查看系统内容 free [-b|-k|-m—|g|][-t]
     查看系统内核:uname [-asrmpi]
     观察系统启动时间和工作负载:uptime
     追中网络或插槽文件:netstat
     分析核心产生的信息:dmesg
     侦测系统资源:vmastat :vmstat 1 3 统计目前主机状态,每秒一次,共计三次

特殊文件及进程
具有SUID/SGID权限的命令执行状态
        .SUID权限仅对二进制进程(binary programe)有效
        .执行者对于该进程需要具有X的执行权限
        .本权限仅在执行这个进程的过程中有效
        .执行者将具有该进程拥有者的权限
查询整个系统的SUID/SGID的权限:find / -perm +6000

/proc/*目录下代表的意义
    所谓进程都是在内存中的,为内存当中的数据都是写入/proc/*这个目录下,基本上,目前主机上的
各个进程的PID都是以目录形态存在于/proc/1中,该目录底下的相关文件可能会对将来编写某些工具有帮助。

查询已开启文件或已执行的进程开启的文件
    fuser [-umv][-k [i] [signal]] file/dir
        -u:除了程序的PID,同时列出进程的拥有者;
        -m:后面接的那个文件名个会主动的上提到该文件系统最顶层,对umount不成功很有效
        -v:可以列出每个文件与进程还有完整相关性
        -i:必须与-k配合,删除PID之前会会询问使用者的意愿
列出被进程所开启的文件名 lsof [-aUu] [+d]    
列出正在执行的进程:pidof [-sx] programe_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值