Nginx搭建RTMP服务器
本篇文章主要是记述了基于Nginx搭建RTMP直播推流服务器。关于安装Nginx的内容可以查看这篇博客 《CentOS7编译安装nginx》 ,下载Nginx源码可以点击这个链接, http://img.zouchanglin.cn/50fdfa08e93ead7a111cba5a5f5735af.gz ,下面是Nginx推流模块的代码,可以在Github下载,但是也可以点击这个链接 http://img.zouchanglin.cn/75ac12aa7dcbdcb065c7004546b7b941.zip 。这样在做直播相关的测试的时候就可以用上了。
Linux进程通信之信号量
虽然本文是记录使用信号量保证进程的同步与互斥的,但是其实也可以看做是进程之间的通信问题,为了与前面的保持一致,所以还是叫做 Linux进程间通信了!
信号量
基本概念
进程间通信的方式有管道、消息队列、共享内存这些都是进程间的信息通信,而信号量可以理解为进程使用的临界资源的状态说明,信号量主要用于保证同步与互斥
- 临界资源:两个进程看到的一份公共资源称之为临界资源
- 临界区:各个进程中访问临界资源的代码叫做临界区
- 互斥:每个进程访问临界资源的时候必须是独占式的(排他式的),只能自己一个人访问
- 同步:防止不间断的占有资源和释放资源,这样的话其他进程就会长时间得不到资源,这样会造成进程的饥饿问题
由此可见我们之前用于进程间通信的管道,消息队列,共享内存都是临界资源,管道是内核已经提供了同步与互斥,但是消息队列和共享内存都是不保证同步与互斥的
使用Git的一些规范
commit message 规范
代码风格统一,代码提交信息的说明准确,那么在后期协作以及Bug处理时会更加方便,先来介绍推荐采用的commit规范吧,Commit message格式如下: type(scope): subject 注意冒号后面有空格,type用于说明commit的类别,只允许使用下面7个标识:
type:type用于说明commit的类别
-
feat:新功能(feature)
-
fix:修补bug
-
docs:文档(documentation)
-
style: 格式(不影响代码运行的变动)
-
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
-
test:增加测试
-
chore:构建过程或辅助工具的变动
如果type为feat和fix,则该commit将肯定出现在Change log之中。
scope:可选项,用于说明commit的影响范围
subject::commit 目的的简短描述,不超过50个字符,且结尾不加句号
Linux进程通信之管道
Linux进程间通信的基本思想是:让两个进程看到一份公共的资源!
Linux进程间通信的目的
- 数据传输:⼀个进程需要将它的数据发送给另⼀个进程
- 资源共享:多个进程之间共享同样的资源。
- 通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它们发生了某种事件(如进程终止时要通知父进程)。
- 进程控制:有些进程希望完全控制另⼀个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变
通信方式之管道
管道是Unix中最古老的进程间通信的形式。 我们把从⼀个进程连接到另⼀个进程的⼀个数据流称为⼀个”管道”
- 管道是面向字节流的
- 管道的生命周期:与进程一致
- 管道只能用于单向通信
- 内核会对管道操作进行同步与互斥



