linux基本命令之管理进程

来源:岁月联盟 编辑:exp 时间:2012-01-08
一:linux的引导流程(首先我们先了解一下linux的开机引导流程)
 
开机自检
MBR引导(master boot record主引导记录)
GRUB菜单(如果多系统的话、用来选择用哪个系统的作用)
加载linux内核
INIT进程初始化
init进程
————是所有进程的父进程、对应的PID是1、/sbin/init是内核第一个加载的程序、不允许轻易终止、配置文件是/etc/inittab!
 
inittab配置文件
————inittab文件位于/etc目录中,init进程运行后将按照该文件中的配置依次启动系统中需要运行的脚本和程序
 
例:查看/etc/inittab文件中的有效配置行(去除注释行和空行)
 
[root@localhost ~ ]# grep -v "^#" /etc/inittab | grep -v "^$"(-v反向查)
id:3:initdefault:(得出这样的结果、3指的就是从字符界面启动)
 
得出的结果结构如下:
标记:运行级别:动作类型:程序或脚本
 
id——标记字段
runlevels——运行级别字段
action——动作类型字段
process——程序或脚本字段
 
运行级别包括七种:
 
0:关机状态
1:单用户模式,不用密码可登陆、多用于维护系统
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:未分配使用
5:图形界面多用户模式
6:重启
注:使用不同运行级别代码组合、如2345表示该配置在进入级别2、3、4、5时均有效
 
例:查看当前系统的默认运行级别,并将默认级别修改为3、以便下次开机后自动进入文本模式
[root@localhost ~ ] # grep ":initdefault" /etc/inittab
id:5:initdefault:    (此刻默认级别是5将会从图形界面启动)
……
[root@localhost ~ ] # vi /etc/inittab
id:3:initdefault:  (将5改为3即可)
……
 
例:查看inittab文件中设置的按Ctrl+Alt+Delete所对应的操作(3秒后重启),若在该行记录前添加“#”号就可以关闭该功能
[root@localhost ~ ] # grep ":ctrlaltdel" /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
 
例:确认inittab文件中使用“respawn”操作的各行配置
[root@localhost ~ ] # grep ":respawn" /etc/inittab
1:2345:respawn:/sbin/mingetty tty1
2:2345:respaws:/sbin/mingetty tty2
……
6:2345:respaws:/sbin/mingetty tty6
x:5:respawn:/etc/Xll/prefdm -nodaemon
 
rc.sysinit脚本文件
——是init进程所调用的系统初始化脚本,在/etc/rc.d/rc.sysinit、脚本主要完成包括设置网络、主机名、加载文件系统、设置时钟等
 
例:确认当前linux系统中使用的初始化脚本文件,并确认文件类型,查看开头10行的内容
[root@localhost ~ ] # grep ":sysinit" /etc/inittab
si::sysinit:/etc/rc.d/rc.sysinit
[root@localhost ~ ] # file /etc/rc.d/rc.sysinit
/etc/rc.d/rc.sysinit : Bourne-Again shell script text executable
[root@localhost ~ ] # head -10 /etc/rc.d/rc.sysinit
#!/bin/bash
#
#/etc/rc.d/rc.sysinit - run once at boot time
#
……
HOSTNAME='/bin/hostname'
HOSTTYPE='uname -m'
unamer='uname -r'
 
rc脚本文件
——同样是由init进程进行调用,位于/etc/rc.d/rc、通过制定不同级别的参数分别加载及终止不同的系统服务!
 
例:关闭cups打印服务
[root@localhost ~ ] # service cups stop  或执行/etc/rc.d/init.d/cups stop
例:重启network网络服务
[root@localhost ~ ] # service network restart  或执行/etc/rc.d/init.d/network restart
 
rc.local脚本文件
——一个额外的启动控制文件,位于/etc/rc.d/rc.local、通常最后执行、作用:管理员设定自行启动命令提供途径、需要开机自启的文件都可以放在里面
 
例:确认rc.local脚本文件的位置及各运行级别中都加载了rc.local脚本文件
[root@localhost ~ ] # ls -l /etc/rc.d/rc?.d/*local  /etc/rc.d/rc.local
 
例:在rc.local脚本中添加一条命令,以便每次启动后根据BIOS中的时钟自动校对系统时间
[root@localhost ~ ] # vi /etc/rc.d/rc.local
/sbin/hwclock --hctosys
 
运行级别控制
 
查看系统运行级别——[root@localhost ~ ] # runlevel
切换系统运行级别——init 3(切到字符界面)init 0(关机)
 
设置系统服务在不同运行级别中的状态
 
1.使用ntsysv配置工具(*号表示自动启动、没有反之)
直接用ntsysv仅用于当前运行级别、可以--level指定运行级别
 
2.chkconfig配置工具
[root@localhost ~ ] # chkconfig --list network(查看network服务在当前运行级别中的状态、如果不指定具体服务、显示所有)
[root@localhost ~ ] # chkconfig --level 35 network on或off(指定network服务在3、5运行级别中的状态on或者off)
 
进程管理
 
一:查看进程
 
1.ps——查看静态进程统计信息
 
    a:显示当前终端下的所有进程信息,包括其他用户
    u:使用以用户为主的格式输出进程信息
    x:显示当前用户在所有终端下的进程信息
    -e:显示系统内的所有进程信息
    -l:使用长格式显示进程信息
    -f:使用完整的格式显示进程信息
用法习惯:ps aux或ps -elf
 
2.top——查看进程的动态信息
   按P根据cpu排序、M内存排序、N启动时间排序、q退出
 
3.pgrep——查询进程信息
   用于查询指定进程
例:查询进程名中包含“log”的进程ID号、列出进程名
[root@localhost ~ ] # pgrep -l "log"
例:查询由用户teacher(用-U)在tty1终端上(-t)运行的进程的PID号,列出对应的进程名
[root@localhost ~ ] # pgrep -l -U teacher -t tty1
 
4.pstree——查看进程树
以树型结构显示、结合-p显示PID号、-u列出用户名、-a列出完整的命令
[root@localhost ~ ] # pstree [-aup]
例:列出由用户teacher打开的进程及子进程的树结构信息
[root@localhost ~ ] # pstree -ap teacher
 
二:控制进程
 
1.启动进程(手工启动、预定计划调度启动)
 
手工启动包括前台启动和后台启动、大多数的命令都是在前台运行的、可以使用Ctrl+Z将前台进程挂起到后台、但是调入到后台之后就暂停了!
 
[root@localhost ~ ] # jobs -l(当前终端中后台进程任务)
[root@localhost ~ ] # fg 1(将PID为1的进程重新调入到前台)
 
2.终止进程(kill、killall、pkill)
 
⑴kill——需要制定进程的PID号作为参数!结合-9选项可以强制杀死进程!
⑵killall——通过指定进程名作为参数、也可结合-9强制结束进程
⑶pkill——可以根据进程名、运行该进程的用户、进程所在的终端等多种属性(-U指定用户、-t指定终端)
 

 
本文出自 “天道酬勤-常双阳” 博客