1.RPM包安装服务的管理
1.1.RPM包安装的服务
chkconfig --list #查看服务自启动状态,可以看到所有RPM包安装的服务
1.2.独立的服务RPM包安装的位置
/etc/init.d/ 启动脚本位置
/etc/sysconfig 初始化环境配置文件位置
/etc 配置文件位置
/etc/xinetd.conf xinetd配置文件
/etc/xinetd/ 基于xinetd服务的启动脚本
/var/lib 服务产生的数据存放位置
/var/log 日志
1.3.独立服务的启动
独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart #绝对路径方式
service 独立服务名 start|stop|status|restart #service方式
独立服务的自启动
chkconfig --level 2345 httpd on #将httpd的2345运行级别打开
修改 /etc/rc.d/rc.local #加入/etc/rc.d/httpd start 推荐此方法
使用ntsysv命令管理自启动 #红帽系列专有
1.4.基于xinetd服务(例如telnet服务)
yum -y install xinetd
yum -y install telnet-server #不安全的服务
vi /etc/xinetd.d/telnet #启动telnet服务
修改disable=no为yes
service xinetd restart #重启xinedt服务
自启动设置
chkconfig telnet on 或者 ntsysv界面管理 (红帽专用)
注意:基于xinetd的服务手动和自启动是一样的
2.源码包安装服务的管理
不同源码包的启动脚本不同,可以查看安装目录下的install文件说明
/usr/local/apache2/bin/apachectl start|stop #启动
自启动
vi /etc/rc.d/rc.local 加入 /usr/local/apache2/bin/apachectl start
3.服务管理总结
3.1进程查看
root@kali:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 3.4 0.2 166344 10596 ? Ss 05:06 0:01 /sbin/init splash
列名解释:
USER :该进程是哪个用户创建的
PID :进程ID号
%CPU :CPU占用
%MEM :物理内存占用
VSZ :占用虚拟内存大小
PSS 占用实际物理内存大小
TTY :该进程是在哪个终端中运行 tty1-7代表本地 tty1-6是本地字符界面 tty7是图形界面 pts/0-256代表虚拟终端
STAT : 状态 R运行 S睡眠 T停止 s包含子进程 +位于后台
START :进程启动时间
TIME : 占用CPU的运算时间
COMMAND : 产生此进程的命令名
其他查看进程命令
ps -le #用标准linux格式输出进程
top #查看系统健康状态,默认每三秒更新一次
root@kali:~# top #shift+列名首字母 可以按照这个列排序 q退出
top - 05:27:36 up 21 min, 1 user, load average: 0.00, 0.00, 0.02 #第一行
Tasks: 163 total, 1 running, 162 sleeping, 0 stopped, 0 zombie #第二行
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st #第三行
MiB Mem : 3934.0 total, 2867.1 free, 522.6 used, 544.3 buff/cache #第四行
MiB Swap: 2045.0 total, 2045.0 free, 0.0 used. 3153.1 avail Mem #第五行
#第一行系统信息:当前系统时间,已经运行了21分钟 1个用户 前1,5,15分钟的平均负载是0.00 0.00 0.02,数值大于1代表超出负荷
#第二行进程信息:163个进程 1个正在运行 162个睡眠 0个停止 0个僵尸进程
#第三行CPU信息:用户模式占用0.0us 系统模式占用0.3sy 改变过优先级的用户进程占用0.0ni 空闲99.7id 等待输入/输出的进程0.0wa 硬中断请求服务占用0.0hi 软中断请求服务占用0.0si 虚拟时间百分比0.0st
#第四行物理内存信息: 物理内存总量3934.0 空闲2867.1 使用522.6 used 作为缓冲的544.3buff
#第五行交换分区信息: 交换分区大小2045.0 使用0.0used 空闲2045free 作为缓存的3153.1 men
pstree [-p-u] #查看进程树
-p 显示进程PID
-u 显示进程的所属用户
root@kali:~# kill -l #查看可用的进程信号
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
常用的
1在控制终端上是挂起信号, 或者控制进程结束
9用来立即结束程序的运行
15程序结束信号
例如:kill -1 12345 #重启进程
kill -9 12345 #强制杀死进程
killall [-i-I] [信号] 进程名 #按照进程名杀死进程
-i 交互式,询问是否kill
-I 忽略进程名的大小写
3.2进程管理
任意命令后面直接跟& #进程放入后台运行
任意命令敲完按ctrl+z #进程放入后台暂停
ctrl+c #进程结束
jobs #查看后台进程
fg %工作号 #恢复后台进程
bg %工作号 #恢复到后台执行
注意:恢复到后台执行的进程必须是不和前台交互的 例如vim就必须交互,所以就算使用bg恢复到后台执行,也是stop状态
3.3系统资源查看
vmstat [刷新延时] [刷新次数] #监控系统资源 例如 vmstat 1 3
dmesg #开机时内核检测信息 例如 dmesg | grep CPU
free [-b-k-m-g] #查看内存使用状态,以bkmg为单位查看,默认为KB
cat /proc/cpuinfo #查看CPU信息
uptime #显示系统启动时间和平均负载 等同top第一行
uname [-a-r-s] #查看系统与内核 -a 所有 -r查看内核版本 -s 查看内核名称
file /bin/ls #判断当前系统位数32/64 file任何一个外部命令都可以看到
lsb_release -a #查看当前系统的发行版本
lsof [-c-u-p] #列出进程打开或者使用的文件 -c列出字符串开头的进程 -u只列出某个用户的进程 -p 列出某个PID进程
3.4系统定时任务——自己感觉是系统管理使用最多的
crond 服务管理与访问控制 #默认开启
service crond restart #服务手工启动
chkconfig crond on #服务自启动
crontab [-e-l-r]
-e 编辑crontab定时任务
编辑格式:
* * * * * 命令
...可以写多条定时任务
解释:
第1个* 第*分钟 0-59
第2个* 第*小时 0-23
第3个* 第*天 1-31
第4个* 第*月 1-12
第5个* 第*星期 0-7 0/7都代表星期日
* 代表每*都执行一次
, 代表不连续的时间
- 代表连续时间
*/n 代表每隔n分钟执行一次
例如:
45 22 * * * 命令 #22.45分执行命令
0 17 * * 1 命令 #每周一17点执行命令
0 5 1,15 * * 命令 #1和15号每天5点0分执行命令
40 4 * * 1-5 命令 #星期一到星期五每天4.40执行命令
*/10 4 * * * 命令 #每天4点每隔10分钟执行命令
例如:
*/5 * * * * /bin/echo "11" >> /tmp/test #每5分钟将11写入test
5 5 * * 2 /sbin/shutdown -r now #每星期2的5时5分重启
0 5 1,10,15 * * /root/sh/bak.sh #每月1 10 15号的5时0分执行bak脚本
注意:在脚本中如果有%请使用\转义一下,因为%在crontab中有特殊含义
-l 查询crontab任务
-r 删除当前用户所有的crontab任务