网关服务器配置
之前我们用一台linux服务器搭建了一个虚拟化的环境,下面我就要开始在它的基础上折腾各种各样的服务了。 为了便于理解和以后的扩展,有必要先梳理一下整体的网络结构。
之前我们用一台linux服务器搭建了一个虚拟化的环境,下面我就要开始在它的基础上折腾各种各样的服务了。 为了便于理解和以后的扩展,有必要先梳理一下整体的网络结构。
现在linux用的越来越多了,不光要在上面写程序,还经常要配个服务什么的,每次都上网赵资料有点麻烦,所以准备把自己配置的过程写下来,供以后参考。
今天,一个运行了近一年的程序突然挂掉了,问题定位到是system()函数出的问题
标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。
这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。
popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数
曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它。
记录如何配置 linux中 Out of memory: Kill process, 让oom有选择性kill。
Awk是什么
Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。sed是一种非交互式且面向字符流的编辑器(a “non-interactive” stream-oriented editor),而awk则是一门模式匹配的编程语言,因为它的主要功能是用于匹配文本并处理,同时它有一些编程语言才有的语法,例如函数、分支循环语句、变量等等,当然比起我们常见的编程语言,Awk相对比较简单。
Sed是什么
《sed and awk》一书中(1.2 A Stream Editor)是这样解释的:
Sed is a “non-interactive” stream-oriented editor. It is stream-oriented because, like many UNIX
programs, input flows through the program and is directed to standard output.
Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同;同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。这两个特性使得Sed成为命令行下面非常有用的一个处理工具。
如果对sed的历史有兴趣,可以看书中2.1节”Awk, by Sed and Grep, out of Ed”,这里就不多介绍。
这事儿不能说太细,仅供参考
译者sllscn是中国Linux公社里的“Linux 新鲜社员”,一个Linux爱好者,在实际工作中使用iptables构造防火墙时,发现有关iptables的中文资 料太少,故而不得已参考英文版的材料。为了今后参考的方便,也为了广大使用者,不怕自己的英文水平 太差,翻着字典翻译了本文。翻译只为了能看懂,达不到“好看”,勿怪!