首页 > 代码库 > Linux程序与资源管理
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
????
?
Linux程序与资源管理