Linux进程及服务的管理
大家知道在操作系统中,服务是通过进程提供的。所以了解Linux系统的进程运行情况,能使我们对主机提供更好的管理机制。(一)进程的管理
1,如何查看进程:
(1)通过ps aux或ps -elf命令查看某一时刻的进程状态
# ps aux |head
USER PID%CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 10.00.0 10372 696 ? Ss20:10 0:00 init
root 20.00.0 0 0 ? S<20:10 0:00
root 30.00.0 0 0 ? SN20:10 0:00
root 40.00.0 0 0 ? S<20:10 0:01
root 50.00.0 0 0 ? S<20:10 0:00
root 140.0 0.0 0 0 ? S< 20:10 0:00
root 180.00.0 0 0 ? S<20:10 0:00
root 190.00.0 0 0 ? S<20:10 0:00
root 1920.00.0 0 0 ? S<20:10 0:00
(2)通过top命令动态查看进程
P、M:根据 %CPU、%MEM 降序排列
T:根据进程消耗的 TIME降序排列
k、r:杀死指定的进程、重设进程优先级
q:退出 top 程序
# top |head -n 15
top - 21:08:51 up 58 min,3 users, load average: 0.00, 0.00, 0.00
Tasks: 169 total,1 running, 167 sleeping, 0stopped, 1 zombie
Cpu(s): 0.6%us,0.7%sy,0.1%ni, 96.4%id,2.0%wa, 0.0%hi,0.3%si,0.0%st
Mem: 1023844ktotal, 687024k used, 336820k free, 41960k buffers
Swap:2096472ktotal, 0k used,2096472k free, 388836k cached
PID USER PR NIVIRTRES SHR S %CPU %MEM TIME+COMMAND
1 root 150 10372696588 S 0.00.1 0:00.81 init
2 root RT -5 0 0 0 S0.00.00:00.00 migration/0
3 root 34 19 0 0 0 S0.00.00:00.00 ksoftirqd/0
4 root 10 -5 0 0 0 S0.00.00:01.79 events/0
5 root 10 -5 0 0 0 S0.00.00:00.00 khelper
14 root 11 -5 0 0 0 S0.00.00:00.00 kthread
18 root 10 -5 0 0 0 S0.00.00:00.05 kblockd/0
19 root 20 -5 0 0 0 S0.00.00:00.00 kacpid
(3)pgrep 根据特定条件筛选
-l PID连同进程名一起输出
-U 检索指定用户的进程
-t 检索指定终端的进程
# pgrep -l-U root
1 init
2 migration/0
3 ksoftirqd/0
4 events/0
5 khelper
14 kthread
18 kblockd/0
………
(4)pstree 树状结构查看
-a 显示完整命令行
-u 列出各进程所属的用户名
-p 列出对应的PID号
2,如何管理进程:以xsnow为例
(1)安装此款软件
# yumlocalinstall -y xsnow-1.42-10.i386.rpm --nogpgcheck
Loaded plugins: product-id, security,subscription-manager
This system is not registered to Red Hat SubscriptionManagement. You can use subscription-manager to register.
Setting up Local Package Process
Examining xsnow-1.42-10.i386.rpm: xsnow-1.42-10.i386
Marking xsnow-1.42-10.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
………………………………………
……………..
(2)打开软件,发现软件在前台运行时不能做其他任何操作
# xsnow
Xsnow-1.42, December 14th 2001 by Rick Jansen(rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/
(3)Ctrl+Z使当前运行停止并放置到后台,查看后台运行进程
# xsnow
Xsnow-1.42, December 14th 2001 by Rick Jansen(rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/
+ Stopped xsnow
# jobs
+ Stopped xsnow
#
(4)把后台进程调度到前台
# fg xsnow
Xsnow
(5)直接把后台进程放到后台运行
# bg xsnow
+ xsnow &
(6)在程序后面加&可使直接转入后台运行,此时可以操作主机
# xsnow&
7653
# Xsnow-1.42, December 14th2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/
# ls
xsnow-1.42-10.i386.rpm
(7)打开多个xsnow程序
(8)查看后台进程
# jobs
Running xsnow&
Running xsnow&
Running xsnow&
Running xsnow&
Running xsnow&
- Running xsnow&
+ Running xsnow&
(9)一次性结束xsnow进程
# killallxsnow
Done xsnow
Done xsnow
Done xsnow
Done xsnow
Done xsnow
-Done xsnow
+Done xsnow
#
进程的管理大体为进程的控制和终止
进程控制
& 放入后台运行,运行在内存中的进程
ctrl +z将当前的作业放入后台并暂停运行
jobs 查看后台进程
fg 编号把后台进程调到前台
bg 编号让程序在后台运行
终止进程
ctrl +c 终止当前正在运行的进程
kill -9 pid强制杀掉进程
killall 进程名杀死开启多个的同一进程
pkill[-9]进程名[也可以是用户]
(二)服务的管理
1,服务的分类:服务分为系统服务和临时服务两大类
独立系统服务:响应速度快、占用系统资源;
临时服务:响应速度慢、较节省系统资源;
2,服务状态:chkconfig--list 显示全部服务的启动状态
chkconfig --list xxx 显示xxx服务的启动状态
区别已安装过的服务是系统服务还是临时服务
rpm -ql httpd | grep init/xinetd
# chkconfig --list | head
NetworkManager0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig --list autofs
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# rpm -qlautofs | grep xinetd
# rpm -qlautofs | grep init
/etc/rc.d/init.d/autofs
3, 如何区别系统服务和临时服务
(1)看路径:系统服务 /etc/init.d/临时服务/etc/xinetd.d/
(2)用chkconfig list 全部列举,可以根据标题看出服务类型
chkconfig list 服务:列举指定的某个服务状态
4,手动启动系统服务的两种方法
(1)service 系统服务 stop/restart/start/status/reload
# service autofs restart
Stopping automount:
Starting automount:
(2)/etc/init.d/系统服务 start/stop/restart/status/reload
# /etc/init.d/autofs restart
Stopping automount:
Starting automount:
5,自动启动系统服务的两种方法
(1)chkconfig 服务 on/off 默认级别2345
chkconfig --level 35 系统服务 on/off 指定服务级别
# chkconfig --list NetworkManager
NetworkManager0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig --level 35NetworkManager on
# chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off 3:on 4:off 5:on 6:off
#
(2)ntsysv --level 35 系统服务指定服务级别
空格 选择开启/关闭服务
Tab ok确定
# chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off3:off 4:off 5:off6:off
# ntsysv --level 35
# chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off3:on 4:off 5:on 6:off
#
6,临时服务开启的两种方法
首先需要安装并打开xinetd托管服务
# rpm -qi xinetd
package xinetd is not installed
# yum install -y xinetd
Failedto set locale, defaulting to C
Loadedplugins: product-id, security, subscription-manager
Thissystem is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
Settingup Install Process
ResolvingDependencies
-->Running transaction check
--->Package xinetd.x86_64 2:2.3.14-17.el5 set to be updated
-->Finished Dependency Resolution
………………………………………..
………………………….
# chkconfig --level 35 xinetd on
# chkconfig --list xinetd
xinetd 0:off 1:off2:off 3:on 4:on 5:on 6:off
(1)chkconfig 临时服务 on
# chkconfig --list rsync
rsync off
# chkconfig rsync on
# chkconfig --list rsync
rsync on
(2)vim /etc/xinetd.d/临时服务
把 disable改为no
# chkconfigrsync off
# vim/etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition toan ftp server, as it \
# allowscrc checksumming etc.
service rsync
{
disable= no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure+= USERID
}
~
~
-- INSERT -- 6,14-21 All
# chkconfig--list rsync
rsync on
页:
[1]