服务与进程管理
Linux 运行级别
运行级别 | 说明 |
---|---|
0 | 关机模式。poweroff.target |
1 | 单用户模式,仅用于 root 用户对系统进行维护时。rescue.target |
2 | 多用户模式(没有 NFS)。multi-user.target |
3 | 完全多用户模式,即多用户文本界面模式,是标准的运行级别。multi-user.target |
4 | 特定运行级别,基本不用的用户模式。multi-user.target |
5 | X11,Linux 系统的图形界面运行级别。graphical.target |
6 | 重新启动。reboot.target |
- target 文件保存在:
/lib/system/system
目录中。 - 运行级别的设置由
/etc/systemd/system/default.target
文件来控制。 - 运行级别服务程序存放位置:
/etc/rc.d/
- 服务进程存放在运行级别对应的目录中:Snnxxxx 或 Knnxxxxx 服务程序的脚本文件存放位置:
/etc/rc.d/init.d/
runlevel
# 查看运行级别,默认为5
systemctl set-default runlevel3.target
# 切换运行级别,改为3
systemctl 管理服务
systemctl 选项 服务名
选项 | 说明 |
---|---|
start | 启动 |
stop | 停止 |
restart | 重启 |
status | 服务状态 |
设置服务自启
方法一:
ntsysv [--back][--level]
# back:在互动界面不显示 cancel
# level:在指定的运行级别中设置服务的自启动。
方法二:
systemctl is-enabled [服务名称]
# 查看服务状态
systemctl enable 服务名称
# 开启自启
systemctl disable 服务名称
# 关闭自启
特殊命令
命令 | 说明 |
---|---|
systemctl poweroff | 系统关机 |
systemctl reboot | 重新启动 |
systemctl suspend | 进入睡眠模式 |
systemctl hibernate | 进入休眠模式 |
systemctl rescue | 强制进入救援模式 |
systemctl emergency | 强制进入紧急救援模式 |
进程管理
ps 查看进程静态信息。
ps [选项]
选项 | 说明 |
---|---|
-A | 显示系统中所有进程的信息,与-e 具有相同的功能。 |
-a | 显示所有用户进程的信息。 |
-f | 完整的显示进程的所有信息。 |
-l | 以长格式显示进程信息。 |
-r | 只显示正在运行的进程。 |
-u | 显示面向用户的格式(包括用户名、CPU 及内存使用情况等信息)。 |
-x | 显示所有非控制终端上的进程信息。 |
-p | 显示由进程 ID 指定的进程的信息。 |
-t | 显示指定终端上的进程的信息 |
top 动态进程信息
选项 | 说明 |
---|---|
按P键 | 以CPU使用时间进行排序 |
按M键 | 以内存使用率排序 |
按N键 | 以进程启动时间排序 |
按A键 | 以pid排序,按q键退出。 |
pstree 各进程间关系
pstree [选项] [pid|user]
# -a:显示该进程的完整继承关系,如果是被内存置换出去的进程则会加上括号。
# -c 如果有重复的进程名, 则分开列出 (默认值是会在前面加上 * )。
# pid|user:查看指定根进程(pid)或用户(user)所拥有的进程。
kill 结束进程
kill [信号代码] pid
killall [信号代码] 进程名
前台启动与后台运行
-
前台启动
是默认的进程启动方式,如用户输入“ls –l”命令就会启动一个前台进程。当计算机在处理此命令的时候,用户不能再进行其它的操作。当命令正在前台执行时(运行尚未结束),按Ctrl+Z
组合键可以将当前进程挂起
(调入后台并停止执行),这在需要暂停当前进程并进行其它操作时特别有用。 -
后台运行
在要执行的命令后面加上一个&
符号,此时程序将转到后台运行,其执行结果不在屏幕上显示,但在此命令的执行过程中,用户仍可以继续执行其它的操作。后台运行适合于运行期间不需要用户的干预或是执行时间较长的程序。- 利用
jobs -l
查看后台进程的任务编号 - 利用
fg
任务编号将后台进程调入终端的前台执行 - 利用
bg
任务编号将挂起进程调入后台继续运行 - 终止进程三种方法:
Ctrl+C
kill PID
kill -9 PID
- 利用
at 延迟调度
at [-f 文件] [-m ] 时间
# -f : 指定存放计划执行命令的文件
# -m: 作业结束后发送邮件给执行 at 命令的用户
# 任务执行的时间,可采用相对和绝对两种方法
# 绝对表示法: MMDDYY或MM/DD/YYYY, today或tomorrow来表示今天或明天。
# 相对表示法:now+num+时间单位,间隔可以是minutes、hours、days、weeks。
at 9:50 tomorrow
echo 'hello!'
# ctrl + D 结束输入
crontab 周期性调度
crontab –u user {-e | -l | -r}
# -u:为指定的用户设置计划任务
# -e:编辑计划任务列表
# -l:查看指定用户的计划任务列表,默认为当前用户
# -r:删除用户的计划任务列表
# 任务计划文件存储位置: /var/spool/cron/
# 任务列表文件的格式:minute hour day month day-of-the-week run_command
crontab -u tom -e
# 指定用户tom
0 13 * * 2 echo 'i have a metting tomorrow'
# 每周二下午一点
# 天晚上1:00执行脚本:
crontab -e
##
0 1 * * * /bin/bash /root/bak-httplog.sh
##
监视系统信息
用户
users
# 查看当前登录的用户名。
who
# 查看当前登录用户的详细信息。
w
#显示当前登录用户的详细信息
# 举例
# 执行who或w命令找到登录到系统中的可疑用户(jerry),并记录其登录终端的编号。
# 查找可疑用户登录终端所对应的PID:ps aux
# 强制结束该进程,踢出用户: kill -9 PID
资源占用信息
free
# -m 以MB为单位显示信息,默认以KB为单位。
# -s 指定动态显示时的刷新频率。
df
# 显示硬盘中文件系统的使用情况
# -h 方便阅读方式显示
# -T 文件系统类型
uptime
# 显示系统信息
# load average后面分别是1分钟、5分钟、15分钟的负载情况。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。