linux centos服务控制

服务控制

systemctl {选项} name.servive

选项
start		启动
stop		停止
restart		重启,先停止,再启动
reload		重新加载配置文件,不会完全停止和启动服务
status		状态
is-active	是否启动成功
is-failed	是否启动失败
enable		开机自启
disable		关闭开机自启
is-enabled	是否开机自启
list-dependencies	查看依赖关系
mask		屏蔽服务
unmak		取消屏蔽

查看进程

ps查看静态的进程统计信息

a:显示当前终端下的所有进程信息,包括其他用户的进程。与x选项结合时将显示系统中所有的进程信息。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程信息。
-e:显示系统内的所有进程信息。
-l:使用长(Long)格式显示进程信息。
-f:使用完整的(Full)格式显示进程信息。

ps aux

ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 191248  4244 ?        Ss   06:08   0:01 /usr/lib/systemd/systemd --switched-
root          2  0.0  0.0      0     0 ?        S    06:08   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    06:08   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S< 
···省略
root      12594  0.3  0.1 163448  6096 ?        Ds   10:04   0:00 sshd: root@pts/1
root      12598  0.4  0.1 116644  3272 pts/1    Ss   10:04   0:00 -bash
root      12617  0.1  0.2 350468  6556 ?        Sl   10:04   0:00 /usr/sbin/abrt-dbus -t133
root      12640  0.0  0.0 155360  1888 pts/1    R+   10:04   0:00 ps aux

USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。
VSZ:占用虚拟内存(swap空间)的大小。
RSS:占用常驻内存(物理内存)的大小。
TTY:表明该进程在哪个终端上运行。?表示未知或不需要终端。
STAT:显示进程当前的状态,如S可中断休眠进程、D不可中断休眠进程、R运行、Z僵死、
<高优先级、N低优先级、s父进程、l多线性进程、+前台进程。对处于僵死状态的进程应该予以手动终止。
START:启动该进程的时间。
TIME:该进程占用的CPU时间。
COMMAND:启动该进程的命令的名称。

ps -elf

ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 47812 ep_pol 06:08 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --
1 S root          2      0  0  80   0 -     0 kthrea 06:08 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 06:08 ?        00:00:00 [ksoftirqd/0]
···省略
4 S root      12598  12594  0  80   0 - 29161 do_wai 10:04 pts/1    00:00:00 -bash
0 S root      12718   6345  0  80   0 - 26988 hrtime 10:11 ?        00:00:00 sleep 60
0 R root      12719  12598  0  80   0 - 38840 -      10:12 pts/1    00:00:00 ps -elf

PPID:当前进程的父进程
C:CPU占用
PRI:用户态的进程优先级
NI:内核态的进程优先级,取值范围-20~19,数值越低,优先级越高。
ADDR:-表示正在运行
SZ:虚拟内存swap占用
WCHAN:当前进程在内核中的名称

top查看进程动态信息,每3s刷新一次

top
top - 19:27:16 up  3:36,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  98 total,   1 running,  97 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  6.2 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1867024 total,  1348360 free,   148256 used,   370408 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1525688 avail Mem

Tasks系统任务信息:total总进程数,running正在运行的进程数,sleeping休眠的进程数,
			stopped中止的进程数,zombie僵死无响应的进程数。

CPU占用信息:us用户占用,sy内核占用,ni优先级调度占用,id空闲CPU,waI/O等待占用,
			hi硬件中断占用,si软件中断占用,st虚拟化占用。

Mem内存占用信息:total总内存空间,free空闲内存,used已用内存,buff/cache,物理内存和交换内存的缓冲区总和。

Swap交换空间占用:total总交换空间,free空闲交换空间,used已用交换空间,avail Mem可用物理空间。

load average相关梳理(一分钟,五分钟,十五分钟的平均CPU负载,最重要的指标是最后一个数字,即前15分钟的平均CPU负载,这个数字越小越好。
所谓CPU负载指的是一段时间内任务队列的长度,通俗的讲,就是一段时间内一共有多少任务在使用或等待使用CPU。(当前的"负载值除以cpu核数"就是cpu的利用率))

pgrep过滤查询进程信息

-l:同时输出对应的进程名,否则只输出PID,不便于查看。
-U:查询特定用户的进程
-t:查询特定终端运行的进程

pstree查看进程树

-a:列出完整的命令信息
-u:列出对应的用户名
-p:列出对应的PID号

控制进程

&运行较长时间的操作时,命令后面加&符号,放到后台运行
Ctrl + C终止正在执行的进程
Ctrl + Z将前台正在执行的进程调入后台并暂停执行
jobs 选项查看当前终端在后台运行的进程任务
		-l:显示进程对应的PID号

bg ID将后台中暂停执行的任务恢复运行,并继续在后台运行,需指定任务编号作为参数
fg ID将后台中的任务恢复到前台运行,需指定任务编号作为参数
kill 通过PID终止进程运行,无特定选项时,给程序发送终止信号并正常退出运行
		-9:强制终止
killall 进程名称
		通过进程名终止运行,需要结束多个相同名称的进程时,killall更方便。
pkill 选项
		特定条件终止,与pgrep类似
		-U:指定用户
		-t:指定终端

一次性计划任务

at [HH:MM] [YYYY-MM-DD]

设置完,按Ctrl + D退出

service atd start 启动atd系统服务
at [HH:MM] [YYYY-MM-DD] 小时:分钟 年-月-日
at>需要执行的操作
at><EOT> 按Ctrl+D提交任务

at计划任务文件位置
/var/spool/at/a开头的文件,任务执行完毕,文件消失

atq
查询还未执行的计划任务

at -c 任务号
查看计划任务的具体内容

atrm 编号
删除指定任务编号的at任务

周期计划任务

crontab命令

分钟 小时 日期 月份 星期 命令
取值范围
分钟0-59
小时0-23
日期1-31
月份1-12
星期0-7,0或7代表星期日
命令要执行的命令或程序脚本

时间数值的特殊表示方法
*表示该范围内任意时间
,表示间隔的多个不连续时间点
-表示一个连续的时间范围
/n指定间隔的时间频率

0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18 * * * 8点到18点整
0 12 */3 * * 每隔3天的12点整

管理cron计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
实例:创建目录/tmp/testdir-当前日期时间
mkdir /tmp/testdir-$(date +%Y%m%d%H%M)
ls /tmp/

实例:每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形式如etc-2022101010
crontab -e
00 */4 * * * cd / && tar -jcf /backup/etc-$(date +\%Y\%m\%d\%H\%M).tar.bz etc/

实例:每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,
保存的文件名格式为messages-20150402
crontab -e
00 00 * * 2,4,6 cd /var/log/ && tar -jcf /backup/messages_logs/messages-$(date +\%Y\%m\%d).tar.bz messages

实例:每天每两小时取当前系统/tar/op.txt文件中的所有以S开头的信息至/tmp/po.txt文件中。
crontab -e
* */2 * * *b grep "^S" /tar/op.txt > /tmp/po.txt

实例:工作日的工作时间内,每两小时执行一次echo“howdy”
crontab -e
* */2 * * 1-5 echo "howdy"
posted @ 2022-07-12 13:22  玖拾一  阅读(61)  评论(0编辑  收藏  举报