Linux程序与资源管理

使用man command可以查看在线帮助

可执行的二进制文件就是程序

执行程序时因触发事件而获取的ID,称为PID

?

我们登入系统后,会取得一个bash shell的PID。我们可以用bash提供的接口去执行另一个程序,这另外执行的程序也会获得一个PID,这个PID就是子程序。而我们的bash环境,就是父程序。

常驻内存的程序:crond atd, syslog, Apache, named, vsftpd…系统或网络服务

执行完就退出的程序:ls, touch, rm/mkdir/cp/mv, chmod, chown, passwd等

?

▲作业管理

单一终端界面下,bash shell同时管理多个作业

每一个作业程序必须是shell的子程序

每一个作业程序不能等待terminal/shell的输入input

?

▲后台与前台

前台是用户可以控制的作业foreground

后台是在内存中自行运作的作业,用户需用bg/fg等指令将该作业调出来

?

jobs [-lrs] 观察目前的后台作业状态

????参数-l????????同时列出PID

????参数-r????????仅列出正在后台run的工作

????参数-s????????仅列出正在后台stop的工作(+代表默认,fg优先处理默认作业)

?

fg [%]jobnumber????将后台作业拿到前台处理

bg????让作业在后台进行

Ctrl+z????????将目前的作业放到后台暂停

?

kill –signal %jobnumber

????参数-l????????列出目前kill能使用的signal有哪些

????signal????????代表给后面作业什么提示,用man 7 signal可知

????参数-1????????重新读取一次参数的设置文件

????参数-2????????代表Ctrl+C

????参数-9????????立刻强制删除一个作业

????参数-15????以正常的程序方式终止一项工作

?

▲进程管理

如果linux系统很繁忙,当整个系统资源快被耗尽时,我们应该找出最耗系统资源的那个进程,然后删除该进程或降低它的执行权限

如果某个程序僵死zombie,我们应该将其找出并杀死

?

进程的观察:

ps????????静态的查看进程????process status

top????????动态的查看进程????top [-d] top [-bnp]

pstree????????查阅程序之间的关系????pstree [-Aup]

?

stat当前进状态

????R可运行 D等待磁盘 S在睡眠 T被跟踪或被停止

附加标志

????W进程被交换出去 <进程拥有比普通优先级更高的优先级 N进程拥有比普通优先级更低的优先级 L有些页面被锁在内存中 s进程是会话的先到进程

RSS????表示内存中页的数量

?

killall [-ile] [命令名]????通过程序的名字直接杀死和该程序有关的所有进程

????参数-i????????interactive交互式,提示用户是否删除

????参数-l????????指令名称忽略大小写

????参数-e????????

?

free [-bkmgtV]????????显示系统资源内存和缓冲区等

?

uname [-asrmnopiv]????显示电脑以及os的相关信息

?

uptime ????????显示系统当前时间,已开机时间,登陆人数以及负载等

w,top????????有uptime同样的显示信息

dmesg????????显示开机信息,直接查看/var/log/dmesg

sar [-ru]????检测主机的资源状态

netstat [-atunlp]????应用于网络监控

?

linux系统根据各进程的优先级调用各进程。优先级可以使用谦让度nice来调整

????PRI(new) = PRI(old) + nice

对于普通用户,新创建的进程从它的父进程哪里继承谦让值,进程的属主可以增加谦让值,但不能降低nice,这样可以防止低优先级的进程派生出高优先级的子进程。超级用户可以随意设置nice

nice [-n] command

renice [number] PID

?

fuser [-ki] [-signal] file/dir????根据文件或目录查找使用该文件或目录的进程

?

/proc文件系统

????Linux版的ps和top命令都是从/proc目录读取各进程的状态信息,内核把有关系统状态的有意义的信息都放在这个伪目录。进程特有的信息分别被放到了按PID起名字的子目录里

?

/proc目录下的进程信息文件

????cmd????????进程正在执行的命令或程序

????cmdline????进程的完整命令行,以null分割

????cwd????????链到进程当前目录的符号连接

????environ????进程的环境变量

????exe????????链到正被执行的文件的符号连接

????fd????????子目录,其中包含链到每个打开文件的描述符的连接

????maps????????内存映射信息

????root????????链到进程的根目录的符号连接

????state????????进程的总体状态

????statm????????内存使用情况的信息

?

lsof [-Uu] [+d]????????查出某个进程打开或使用的文件与目录

pidof [-sx] program_name????找出正在运行中的程序的PID

????

?

时间: 2024-10-27 21:09:50

Linux程序与资源管理的相关文章

【程序与资源】linux程序与资源管理

程序与资源管理:ps.top.free.sar.kill.uname ①ps语法: [root @test /root ]# ps -aux 参数说明: a   :选择所有的程序列出 u   :所有使用者的程序均列出 x   :所有 tty 的程序列出 说明: 这是用来查询目前主机环境中,在背景执行的相关程序!我通常使用『 ps -aux 』这个参数来列出所有的信息以提供自己检查程序的问题!在上面的程序列出当中,说明如下: USER:说明该程序是属于哪一个人的: PID:该程序的代号: %CPU

Linux 系统常用命令汇总(四) 程序和资源管理

程序和资源管理 分类 命令 选项 注解 背景管理 & command+& 将任务放到后台进行 ctrl+z 暂停任务 fg [%number] 讲后台程序推到前台来,number表示进程编号,不加参数表示将最近的进程推到前台 jobs 查询所有后台任务 系统状态监控 ps 显示当前系统中运行的进程,ps -aux=ps -ef,都表示显示系统当前的所有进程 -a(-e) 所有进程 -u 显示用户 -x 列出所有tty进程 -f 完整显示进程信息 w 查看当前系统负载,显示的内容依次为:时间

linux 程序包管理

如何实现在linux安装,更新程序. 硬件--内核(系统调用接口)--库调用接口(32位,64位) API:Application Programming Interface POSIX:可移植系统,源代码级别各系统都是兼容的. 程序的源代码文件--预处理--编译--汇编--链接 静态编译:不依赖外部环境 共享编译:直接调用lib .so 文件 linux支持elf,windows支持exe,因为ABI不同(应用二进制接口) 库级别虚拟化,WINE 可以在linux跑windows程序,CYWI

Linux程序包管理

Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm.yum.源码编译来浅析Linux的程序包管理.首先,我们来看下本文的主要内容: - 程序包的命名- RPM: 程序包管理器    安装.卸载.升级.查询.校验.数据库维护      - YUM: RPM的前端程序    yum的配置文件     yum的常规操作:升级.检查.卸载.查看.包组管理     使用光盘当作本地yum仓库     yum的命令行选项及

linux程序的安装

linux程序安装有三种方式: 1,rpm安装 2,yum安装 3,绿色安装,tar包形式    (直接解压完就可以用) 4,源代码安装 1,rpm的使用方法 q是已经安装 qp是还没有安装 rpm    -qa        查看所有已经安装rpm包的软件 rpm    -qi        查看指定软件的详细信息 rpm    -ql        查看指定软件包所安装的目录和文件列表 rpm    -qc        查看软件包的配置文件 rpm    -qd        查看指定软件

Linux程序包管理:rpm、yum、编译安装

RPM: RPM Package Manager(RPM软件包管理器),是一款在各个版本liunx上都使用的软件包管理器. RPM共有10种基本的模式: 它们是安装.查询.验证.删除等. 安装模式: rpm –i [安装选项] 查询模式: rpm –q [查询选项] 验证模式: rpm –V 或 –verify [验证选项] 删除模式: rpm –e RPM常用参数: -q  查询 -p  <包文件名>   查询软件包文件 -a  查询所有软件包 -f <文件列表>  查询文件属于

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

Linux程序包管理之RPM

一.RPM的简介 由于程序源代码到可被计算机识别并运行的指令是需要多步骤处理的:程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接. 这里以C,C++为例做为说明.程序员写完C,C++源代码后需要把源代码进行预处理,即通过预处理器把源代码分割或处理成为特定的符号用来支持宏调用.预处理后进一步通过编译器(gcc)编译为目标代码(object code),它由接近于机器语言的代码组成.目标代码通过编译器编译后才能生成可供CPU识别的机器代码.机器指令.由于C,C++在