进程管理【Ubuntu-shell】

本文介绍了如何在Ubuntu操作系统中使用Shell进行进程管理,涵盖了基本的进程操作和管理技巧,帮助读者深入理解Linux进程概念。

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

进程管理:




    用户级进程、系统级进程(守护进程)

    -------------------------------------------------------
    监视进程:
    PID:进程号,系统为进程分配的唯一编号,用于标识系统的身份。
    PPID:父进程的PID号
    TTY:启动该进程的的终端
    USER/UID:执行该进程的用户身份及UID
    PRI:进程的优先级,数字越大表示优先级越低
    NICE:进程的谦让度,表示进程对CPU时间要求的迫切程度
    STAT:进程的状态。如,R:正在运行或已经就绪,S:可以被唤醒的睡眠,D:不可唤醒的睡眠,T:已被停止,Z:进程已经终止但未被父进程回收。
    %CPU:进程占用的CPU比例
    %MEM:进程占用的内存比例
    TIME:进程实际占用CPU的总时间
    ADDR:进程在内存中的地址
    SZ:进程占用的虚拟内存大小
    CMD:启动进程的命令
    -----------------------------------
    proc文件系统:
        一个建立在内存的特殊文件系统,挂载点是"/proc",它记录了个进程以及其他系统信息。在proc文件系统中,每个目录对应于一个进程,目录以进程的PID命名。进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种状态信息。应用程序可通过打开并读取这些文件来获取进程信息。proc文件系统实质为用户程序提供了一种了解Linux内核的方式。许多系统管理命令,如:ps命令,top命令等,通过读取并整理proc文件系统的内容后以友好方式呈现给用户。

    cd  /proc 
    ls -l
    cd  ./1 
    #1号目录记录1号进程信息,即:init进程,1号进程是系统的第一个用户级进程。
    ls -l
    cat ./status
    cat /proc/meminfo
    cat /proc/cpuinfo
    -----------------------------------------
    进程监视命令:
    ps命令提供当前进程的状态快照。top命令实时提供进程信息。pstree命令查看进程家族树。lsof命令列出进程所打开的文件。

    ps 【选项】:报告进程信息。
        -l:长格式显示进程信息
        -e:显示所有进程信息
        -a:显示当前终端进程外的其他进程
        -u:后加用户名参数,指定显示属于该用户的进程
    ps -el
    ps 
    ps aux  #VSZ:进程占用虚拟内存大小;RSS:进程占用物理内存大小 
    ps -u linux

    top 【选项]:实时报告进程信息
        -d:后加参数,指定设定刷新进程信息的间隔时间。
        -n:后加参数,设定总报告次数。
    top  -d 2 -n 3 #2秒,3次

    pstree 【选项】  【进程PID号/用户名】:显示进程家族树
        -p:显示每个进程PID号
        -u:后加用户名参数,指定显示属于该用户的进程
    ps
    pstree

    lsof 【选项】 【文件或目录路径】:列出某进程打开的文件
        -p:后加参数:一组进程的PID
        +d:后加参数:目录路径
        -u:后加参数:用户名
    --------------------------------------
    进程与信号:
    kill -l #列出系统定义的所有信号

    SIGINT 程序终止信号,通知前台终止进程
    SIGQUIT 与SIGINT类似,进程终止后生成文件core
    SIGKILL 强行终止某进程,该信号不能被封锁
    SIGCONT 恢复执行被SIGSTOP或SIGTSTP信号暂停的进程
    SIGSTOP 通知操作系统停止进程的运行,该信号不可忽略
    SIGTSTP 暂停进程,但可以被处理和忽略

    进程终止,进程被消亡。
    进程停止,还能继续被调度执行。

    kill 【选项】 【-信号名称/编号】 [PID列表】:向进程发送信号
        -l:列出系统中定义的信号
    kill
    kill -l
    -----------------------------------------------------
    调整进程优先级:

    nice  [选项】 【启动的命令及其选项和参数】:设定启动进程的谦让度
        -n:后加参数,设置谦让度       #进程优先级:PRI,谦让度NI
    nice -n -3 vim &
    ps -l

    renice 【选项】 谦让度  进程PID号:调整进程的优先级,普通用户仅能设置它所拥有的进程的优先级
        -n:后加参数,谦让度
    renice -n  3     [vim的进程PID号】
    ps  -l
    ---------------------------------------
    守护进程(Daemon)和系统服务:
    守护进程,父进程是init进程,独立于控制终端,不是通过bash启动。
    一个守护进程启动或终止------>一种系统服务的启动或终止

    xinetd超级守护进程
    ------------------------------
    守护进程,如:
    atd     提供执行临时性作业服务
    crond   提供执行周期性作业服务
    syslogd 提供系统日志服务
    auditd  提供系统审计服务
    network 提供激活/关闭各个网络接口服务
    iptables提供防火墙服务
    sshd    提供安全的远程连接服务
    vsftpd  提供网络文件传输服务
    smbd    提供局域网文件共享服务
    named   提供域名解析服务
    httpd   提供网页内容服务---www
    xinetd  超级守护进程,提供对各项服务统一管理的服务   
    ----------------------------------
    守护进程启动、关闭:

    chkconfig  【选项】  服务名:设置守护进程在各个运行级下的启动或关闭
        --list:后加服务名,指定查看所要设置的守护进程的设置情况
        --level:后加运行级编号
    chkconfig --list sshd
    chkconfig  --level 4  sshd  off
    chkconfig --list sshd
    #/etc/init.d/ssh   ---ssh服务的shell脚本
    #ls -l  /etc/rc0.d | grep ssh*  #查看符号链接
    #ls -l  /etc/rc1.d | grep ssh*
    #ls -l  /etc/rc2.d | grep ssh*
    #ls -l  /etc/rc3.d | grep ssh*
    #ls -l  /etc/rc4.d | grep ssh*
    #ls -l  /etc/rc5.d | grep ssh*
    #ls -l  /etc/rc6.d | grep ssh*

    service  服务名 【start|stop|status|restart|……】:查看、启动、关停等系统服务
        --status-all:显示所有独立工作服务的当前状态
    service apache2 restart
    ----------------------------------------------------------
    谦让度与进程优先级的调整:

    #!/bin/bash
    count=$1
    while [ $count -gt 0 ]
    do 
        count=$[ $count - 1 ]
        sleep 0.001
    done
    echo "process $$finish."  
	#$$ 当前脚本的进程PID号
    #process.sh

    sudo  date +"%M:%S";source  process.sh 1000; date +"%M:%S"

    (nice -n -20 `. ./process.sh  100000` &);(nice -n 19 `. process.sh 100000` &);top -d 10

    kill -SIGSTOP  process.shPID号1  process.shPID号2
    ------------------------------------------------------------
    平均负载:系统在一段时间内的负载情况。
    系统的负载:系统所要承担的计算工作量。
    source process.sh 10000  &
    top -d 10

    (source  process.sh 10000 &);(source  process.sh  10000  &)
    top -d 10

    (source  process.sh 10000 &);(source  process.sh 10000 &);(source  process.sh 10000 &);(source  process.sh 10000 &)
    top -d 10

补充:

其他资料:【Linux进程之初步了解】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值