随笔分类 - Linux
摘要:1:环境准备 jdk 推荐oracle,不建议open sdk 在/etc/profile加入下列环境变量 在PATH中将jdk和jre的bin加入path里面 2:安装zookeeper 下载zookeeper tar url: https://archive.apache.org/dist/zo
阅读全文
摘要:git command help 不知道自己怎么搞的,发现了查看git命令的详细文档的一个操作 git *** --hep就可以生成对应的html文档 eg: git config --help / git commit -help 效果图如下 git 版本控制管理 之前并没有接触过git方面的知识
阅读全文
摘要:本项目主要进行网页的抓取,上述为主控制模块 http协议请求页面时的流程: 1、 输入网址 2、 向DNS发送解析请求 3、 DNS返回给我们一个对应的IP地址 4、 通过IP地址向资源所在的主机发送请求 5、 如果资源存在,主机返回200状态,同时返回数据部分 6、 本地http客户端(一般来说是
阅读全文
摘要:Linux下没有直接可以调用系统函数知道CPU占用和内存占用。那么如何知道CPU和内存信息呢。只有通过proc伪文件系统来实现。 proc伪文件就不介绍了,只说其中4个文件。一个是/proc/stat,/proc/meminfo,/proc/<pid>/status,/proc/<pid>/stat
阅读全文
摘要:Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制
阅读全文
摘要:两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理
阅读全文
摘要:find ./ -type f -exec grep -n "#include" ./ {} \; 查看当前面目录下所有文件的grep 在当前目录下所有文件中查找内容包含 string 的文件:find ./ -name "*" -exec grep "string" {} \;注意:在最后不能加
阅读全文
摘要:一、什么是守护进程 Linux服务器在启动时需要启动很多系统服务(其实Windows也这样),它们向本地或网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons原意精灵)来执行的。 守护进程是生存期很长的一种进程。它们独立于控制终端
阅读全文
摘要:维系一个会话,最常见的有两种方式: 一是基于某种凭证,比如web网站的登录会话,在登录验证之后,服务器就会返回一个session id作为凭证。用户之后的请求总是会带上这个id,而服务器通过这个id也就能知道用户是谁。直到用户注销登录、或者登录超时,服务器会清洗掉对应的session id,这个id
阅读全文
摘要:进程组就是一个或多个进程的集合,每个进程组都有唯一的进程组ID(整数,也可以存放在pid_t类型中),进程组由进程组ID来唯一标识,进程组ID是一个正整数,用来获得当前进程进程组ID的命令: 用来获得当前进程进程组ID的函数: pid_t getpgid(pid_t pid) pid_t getpg
阅读全文
摘要:在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向)
阅读全文
摘要:SIGCHLD的产生条件 1、子进程终止时 2、子进程接收到SIGSTOP信号停止时 3、子进程处在停止态,接受到SIGCONT后唤醒时
阅读全文
摘要:1)头文件:#include <signal.h> 2)一个保护临界区代码的错误实例:(sigprocmask()和pause()实现) 上面实例的问题是:本来期望pause()之后,来SIGINT信号,可以结束程序;可是,如果当“取消阻塞”和“pause”之间,正好来了SIGINT信号,结果程序因
阅读全文
摘要:竞态是指设备或系统出现不恰当的执行时序,而得到不正确的结果,由于时间片,或其他因素,导致该到达并响应的信号没有被响应,这就是由信号引起的竞态。 对于上面,因为alarm5秒后悔触发信号,pause收到信号后,会结束挂起,再次之前先输出hello 对于加上sleep(6)则输出hello后一直挂起,因
阅读全文
摘要:个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下也不应
阅读全文
摘要:要明白信号处理函数的使用,就要先知道信号的捕捉设定,什么时候会调用信号处理函数和其执行的流程是什么,下图完整的展示了信号捕捉的设定,以及信号处理函数的触发机制: 所以,从上图可以知道,只有当程序中断,异常或系统调用,才会进入内核态,也只有进入了内核态才能处理信号,在这里初学者常常有一个误区,他们会觉
阅读全文
摘要:每一个进程都有一个pcb进程控制块,用来控制进程的信息,同时信号在pcb中有两个队列去维护他,一个是未决信号集,每一位对应一个信号的状态,0,1,1表示未决态,另一个是信号屏蔽字(阻塞信号集),也就0,1(1代表阻塞), 用户可以改变阻塞信号集的状态,但是改变不了未决信号集的状态 进程在接触对某个信
阅读全文
摘要:三种处理方式 SIG_IGN 忽略 SIG_DFL 默认处理方式 a signal handling function 信号捕捉函数 也就是说在进程中处理信号的行为有三种: 1.默认处理动作 term core ign stop cont 2.忽略 3.捕捉(用户自定义信号处理函数)
阅读全文
摘要:信号是进程间通信方式的一种手段,采用异步通信机制,如果一个进程接收到一个信号,os会中断正在进行的程序流程,任何非原子操作都会被打断,如果进程定义了信号处理函数,那么会执行处理函数,否则执行默认的函数 kill命令: 后32个为实时信号,前32个标准信号,后32个多用于驱动开发 man 7 sign
阅读全文
摘要:GDB是一个功能强大的调试器,它是一个自由软件,能够用在许多UNIX平台上。它同时也是Linux系统中的默认调试器。GDB已被移植到许多其他的计算机平台上,并且能够用于调试嵌入式实时系统。一般来说,GDB主要可以帮助我们完成以下四个方面的功能: 1, 启动你的程序,可以按照你的自定义的要求随心所欲的
阅读全文