第四章:Linux基础之进程和服务

本文介绍了Linux中的进程概念,包括进程的类型、状态和管理,如PID、PPID、进程创建以及top和ps命令的使用。此外,还讲解了进程的优先级和作业控制,如挂起、恢复和后台执行。接着,文章深入到服务和守护进程的控制,如systemd的使用,以及如何管理SSH服务。最后,提到了日志分析、打包压缩、定时任务cron和输入输出重定向的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是进程?从用户的角度来看进程是程序的一次执行过程。从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。进程是资源分配的最小单位,每一个进程都有自己独立的地址空间与执行状态。像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程。

进程管理

进程:linux自身运行的独立程序
交互进程:有一个shell启动的进程,可以再前台运行,也可以在后台运行
批处理进程:是一个进程序列,和终端没有联系
守护进程(监控进程):linux系统启动时,启动并在后台运行的进程

1.PID:进程的ID(每一个新进程都有一个唯一的PID)
2.PPID:父进程的ID
3.任何一个进程都可以创建一个子进程
4.在redhat 7以上,所有的父进程:systemd;在redhat 5,6中,所有进程的父进程:init

top命令:查看实时的进程状态

[root@localhost ~]# top

ps命令:显示当前进程的状态
常用选项:
-aux:列出所有进程
-ef:列出所有进程(-aux格式不同)
-l:列出和当前用户有关的进程
-u:查看某一用户的进程状态

[root@localhost ~]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   3689   3656  0  80   0 - 51025 wait   pts/0    00:00:00 su
4 S     0   3698   3689  0  80   0 - 29035 wait   pts/0    00:00:00 bash
0 R     0   4150   3698  0  80   0 - 30315 -      pts/0    00:00:00 ps
[root@localhost ~]#

进程状态:

运行中:
R:该进程正在运行或等待运行
睡眠:
S:正在休眠但是可以被唤醒
D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态
K:正在休眠,而且不可以被唤醒,该进程可以被中断
已停止:
T:进程被停止,但是可以通过其他进程来进行恢复(或者正在被调试的进程)
僵死:
Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放
X:父进程获取子进程的结构,子进程可以完全释放,该状态进程中是看不到的

进程优先级:

<:高优先级
n:低优先级
s:包含子进程
+:位于后台的进程组

ps -aux参数解释:

%CPU:占用CPU使用率
%MEN:占用内存使用率
VSZ:占用的虚拟内存大小
RSS:占用的实际内存大小
TTY:终端的次要装置号码(minor device number of tty)
STAT:该进程的状态
START:进程开始时间
TIME:进程执行时间
COMMAND:所执行的命令

会话和作业

作业:一个正在执行的进程,而且作业可以包含一个或多个进程
作业控制:控制正在运行的进程的行为。如:挂起一个进程,等一会再执行。这样就可以在多个作业之间切换。

&:在命令后面使用该符号,可以让命令在后台执行

jobs:查看正在后台执行的作业

sleep 1000 延迟1000秒
ctrl+c:中断
ctrl+z:挂起

[root@localhost ~]# jobs
[root@localhost ~]# sleep 1000
^Z
[1]+  Stopped                 sleep 1000
[root@localhost ~]# sleep 2000 &
[2] 3252
[root@localhost ~]# jobs
[1]+  Stopped                 sleep 1000
[2]-  Running                 sleep 2000 &
[root@localhost ~]# jobs -l
[1]+  3238 Stopped                 sleep 1000
[2]-  3252 Running                 sleep 2000 &
[root@localhost ~]# 

fg命令:将后台的命令调到前台继续执行,不能再放到后台了(%作业编号)

[root@localhost ~]# jobs -l 
[1]+  3827  stop               sleep 10000
[2]-  3856  running            sleep 30000 &
[root@localhost ~]#  fg 2
sleep 30000
^Z                                     //ctrl+z 挂起进程
[2]+ stop               sleep 30000 
[root@localhost ~]# jobs
[1]-  stop               sleep 10000
[2]+  stop               sleep 30000

bg命令:将后台暂停的作业继续执行(%作业编号)

[root@localhost ~]#  bg 2
[2]+ sleep 30000 &
[root@localhost ~]# jobs
[1]+  stop                  sleep 10000
[2]-  running               sleep 30000 &
[root@localhost ~]#

ps -j:显示当前作业进程信息(TGID:线程组ID号 SID:会话ID号)

[root@localhost ~]# ps -j

kill命令:杀死进程
kill -l:显示可以传递给linux进程的所有信号
kill -9 PID:强制杀死一个进程
kill -15 PID:正常的方式终止一个进程
kill -2:ctrl+c中断进程操作一样

[root@localhost ~]# 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值