Linux学习--第十二天--服务、ps、top、pstree、kill、&、jobs、fg、vmstat、dmesg、free、uptime、uname、crontab、ls
服务分类
linux服务分为rpm包默认安装的服务和源码包安装的服务。
rpm包默认安装的服务分为独立的服务和基于xinetd服务。
查询已安装的服务
rpm包安装的服务
chkconfig --list #查看服务自启动状态,可以看到所有rpm包安装的服务
源码包安装的服务
查看服务安装位置:一般是/usr/local/下
rpm安装的服务和源码安装的服务的区别是安装位置的不同。
安装xinetd与telnet
yum -y install xinetd
yum -y install telnet-server #xinetd不安全,用的不多了。学习时候可以安装了以后再进行学习和测试。
目录 | 描述 |
---|---|
/etc/ | 配置文件目录 |
/etc/init.d/ | 启动脚本位置 |
/etc/sysconfig/ | 初始化环境配置文件位置 |
/etc/xinetd.conf | xinetd配置文件 |
/etc/xinetd.d | 基于xinetd服务的启动脚本 |
/var/lib/ | 服务产生的数据放在这里 |
/var/log/ | 日志 |
/usr/bin | 可执行命令安装目录 |
/usr/lib | 程序所用的函数库保存位置 |
/usr/share/doc | 软件使用手册保存位置 |
/usr/share/man | 帮助文件保存位置 |
/etc/rc.d/init.d | 启动文件保存位置 |
独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart
service 独立服务名 start|stop|status|restart
service --status-all
查看所有的rpm包服务状态
独立服务的自启动
第一种:chkconfig [--level 运行级别][独立服务名][on|off]
第二种:修改文件/etc/rc.d/rc.local 加入 /etc/init.d/httpd start
第三种:使用ntssysv命令管理自启动 (redhat独有)
xinetd服务的启动
vi /etc/xinetd.d/telnet
service telnet #服务的名称为telnet
{
flag=REUSE #标志为REUSE,设定TCP/IP socket可重用
socket_type=stream #使用TCP协议数据包
wait=no #允许多个连接同时连接
user=root #启动服务的用户为root
server=/usr/sbin/in.telnetd #服务的启动程序
log_on_failure += USERID #登录失败后,记录用户的ID
disable = yes #服务是否启动,no为启动
}
service xinetd restart #重启xinetd restart
xinetd服务的自启动
第一种:chkconfig telnet on|off
第二种:ntsysv
xinetd启动和自启动会同步。可能这就是他不怎么用的一个原因吧。
源码包服务的启动
/usr/local/apache2/bin/apachectl start|stop #查看源码包安装文件,找到启动脚本的方法
源码包服务的自启动
vi /etc/rc.d/rc.local
/usr/local/apache2/bin/apachctl start
让源码包服务被服务管理命令识别
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache #让源码包的apache服务能被service命令管理启动
vi /etc/init.d/apache #让源码包能被chkconfig和ntsysv命令管理自启动
# chkconfig:35 86 76 #指定httpd脚本可以被chkconfig命令管理。格式是:chkconfig:运行级别 启动顺序 关闭顺序
# description: source package apache #说明:内容随意
服务和作用
ps
ps aux #a 前台进程 x后台进程 u哪个用户生成的
ps -efl #e所有进程 l更详细的信息 f表达进程之间的关系
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 9617 0.0 0.1 110244 1148 pts/1 R+ 12:07 0:00 ps aux
#USER 哪个用户产生的
#PID 进程id
#%CPU 占用cpu资源百分比
#%MEM 占用内存资源百分比
#VSZ 占用虚拟内存大小 大小KB
#RSS 占用那个物理内存大小 KB
#TTY 该进程在哪个终端中运行 tty1-tty7本地控制台终端,其中tty7为图形终端,其他字符终端,pts/0-pts/256代表虚拟终端
#STAT 进程状态 R运行,S睡眠,T停止状态,s包含子进程,+位于后台
#START 进程启动时间
#TIME 占用cpu运行时间
#COMMAND 产生此进程的命令
top
[root@localhost 12:23:33 Desktop]# top
top - 12:25:24 up 6 min, 2 users, load average: 4.68, 3.24, 1.48
Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.8%us, 1.7%sy, 0.0%ni, 91.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004132k total, 621724k used, 382408k free, 25888k buffers
Swap: 1048572k total, 0k used, 1048572k free, 240808k cached
/************
第一行:
12:25:24 系统当前时间
up 6 min, 系统运行时间,本机已经运行6分钟
2 users, 当前系统登录了两个用户
load average: 4.68, 3.24, 1.48 系统在之前1分钟,5分钟,15分钟的平均负载。一般以cpu核数为界限
*************/
/************
第二行:
Tasks: 157 total, 系统进程总数
2 running, 正在睡眠的进程数
155 sleeping, 正在运行的进程数
0 stopped, 正在停止状态的进程数
0 zombie 僵尸进程,如果非0,手工检查僵尸进程
*************/
/************
第三行:
Cpu(s):6.8%us, 用户模式下占用cpu百分比
1.7%sy, 系统模式下占用cpu百分比
0.0%ni, 改变过优先级的用户进程占用的cpu百分比
91.5%id, 空闲cpu的百分比
0.0%wa, 等待输入和输出的服务占用cpu百分比
0.0%hi, 硬中断请求服务占用的cpu百分比
0.0%si, 软中断请求服务占用的cpu百分比
0.0%st 虚拟时间百分比,即当有虚拟机时候,虚拟cpu等待实际cpu时间的百分比
*************/
top -d 5 #每五秒刷新一次
?或h #显示交互模式帮助
P #以cpu使用率排序
M #以内存使用率排序
N #以pid排序
q #退出
pstree
pstree -p #显示进程的pid
pstree -u #显示进程的所属用户
kill
kill -l #查看可用的进程信号
kill -1 进程id #相当于restart
kill -2 进程id #相当于ctrl+c
kill -9 进程id #强制立即结束程序运行
kill -15 进程id #默认的
kill -19 进程id #相当于ctrl+z
kill -9 -t tty1 #踢掉本地终端tty1的用户
&、jobs、fg
tar -zcf etc.tar.gz /etc & #放入后台运行
top & #会暂停,因为top是前台展示的交互命令,放入后台就没有意义就暂停了。
jobs -l #显示后台的工作,-l参数显示pid
fg %工作号 #%可以省略
vmstat、dmesg、free、uptime、uname、lsa_release、crontab
vmstat 1 3 #监控系统资源,刷新延时为1秒 刷新3次
dmesg | grep CPU #开机时内核检测信息
free [-b|-m|-k|g] #以字节为单位显示,byte,KB,MB,GB
cat /proc/cpuinfo #查看cpuinfo
uptime #查看系统启动时间和平均负载,top,w命令也能看到这个数据
uname -a #查看系统所有有关信息
uname -r #查看内核版本
uname -s #查看内核名称
file /bin/ls #查看系统多少位
lsb_release -a #查看发行版本
crontab #如果有百分号要有转义符,不是立即执行,判断系统是否繁忙,不繁忙则执行。crond
lsof
lsof -c 字符串 #列出以字符串开头的进程打开的文件
lsof -u 用户名 #列出某个用户的进程打开的文件
lsof -p 进程id #列出某个pid进程打开的文件