🌈 style:

This commit is contained in:
lzy
2024-06-23 17:45:58 +08:00
parent 5598552b22
commit a5172579e3
16 changed files with 138 additions and 393 deletions

View File

@@ -1,4 +1,5 @@
# 目录
- [目录](#目录)
- [进程基本知识](#进程基本知识)
- [进程标识符`pid`](#进程标识符pid)
@@ -13,7 +14,6 @@
- [守护进程](#守护进程)
- [系统日志](#系统日志)
# 进程基本知识
已经进入**多进程**阶段
@@ -36,8 +36,6 @@ pid_t getpid(void);
pid_t getppid(void);
```
## 进程的产生
`pid_t fork();`
@@ -68,8 +66,6 @@ pid_t getppid(void);
pid_t vfork(void);
```
## 进程的消亡及释放资源
```c
@@ -90,8 +86,6 @@ wait4();
池类算法:
上游往池子里放任务,下游三个线程从池子里取任务。
## `exec`函数族
eg. `bash`进程创建`primer`进程
@@ -172,8 +166,6 @@ int setregid(gid_t rgid, gid_t egid);
```
## 观摩课:解释器文件
> unix讲究机制而非策略
@@ -188,8 +180,6 @@ int setregid(gid_t rgid, gid_t egid);
`#!`是一种约定俗成的标记,告诉系统这个脚本应该用什么解释器来执行。
## `system()`函数
```c
@@ -202,8 +192,6 @@ int system(const char *command);
相当于`fork+exec+wait`的封装
## 进程会计
```c
@@ -211,8 +199,6 @@ int system(const char *command);
int acct(const char *filename);
```
## 进程时间
```c
@@ -229,8 +215,6 @@ struct tms{
```
## 守护进程
1. 守护进程`PPID`为1
@@ -248,19 +232,16 @@ pid_t getpgrp(psid_t pid); //! 方言
- 会话session一个或多个进程组的集合`sid`为标识
`pid_t setsid(void);`
`setsid`必须由非`leader`进程调用,从而创建一个新的会话。
- 前台进程组:正在与终端交互的进程组
- 后台进程组:正在运行,但不与终端交互的进程组
- 前台进程组:正在与终端交互的进程组
- 后台进程组:正在运行,但不与终端交互的进程组
- 终端:
我们接触的都是虚拟终端
**单实例守护进程**:锁文件`/var/run/name.pid`
启动脚本文件:`/etc/rc*...`
## 系统日志
`syslogd`服务
@@ -295,4 +276,4 @@ void closelog(void);
```bash
sudo tail /var/log/messages # 老师
journalctl -r # 我的debian
```
```