摘要: 守护进程最大的特点就是不受终端控制,并且在后台运行。linux上很多应用都是以守护进程的方式存在的,比如常用的crond。把应用做成守护进程的好处就是可以脱离终端,不会因为终端的关闭而挂掉,会随着系统的存在而存在。 创建守护进程有以下几个要点: <1> 创建子进程,杀掉父进程。 这么做主要是为了确保 阅读全文
posted @ 2018-09-03 23:04 Frogjie 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 背景 在平时的开发中,经常会碰到一些需要检测tcp连接是否正常的场景。比如一个分布式的应用,一个调度任务的节点管理一堆用来跑业务的节点。当调度节点进行调度的时候,需要把任务分发给它认为正常的业务节点去执行。业务节点是否正常,一个重要的参考依据就是调度节点和业务节点之间的tcp连接是否正常。这时候就需 阅读全文
posted @ 2018-09-02 23:54 Frogjie 阅读(1556) 评论(0) 推荐(0) 编辑
摘要: cut命令使用方式有点像阉割版的awk,主要用来指定分隔符,然后输出特定的域。 常用参数: -d 指定分隔符,默认是空格 -f 输出特定的域,比如f1,输出第一个域;f1,5, 输出第一个和第5个域;f1-5,输出1到5这5个域 -b 显示的字节数 比如这里有个txt文件如下: cut -b 1,4 阅读全文
posted @ 2018-08-23 22:32 Frogjie 阅读(537) 评论(0) 推荐(0) 编辑
摘要: -w -W -Wall -w 关闭编译警告。平时编写c/c++代码如果不规范,编译的时候会抛出很多警告。但是一般的警告都是可以忽略的,比如类型转换。编译的时候可以加-w关闭警告 -W 也是关闭编译警告,但是比-w智能一些,它只会显示编辑器认为会出错的警告 -Wall, 显示所有警告。 比如下面的代码 阅读全文
posted @ 2018-08-23 22:19 Frogjie 阅读(1792) 评论(0) 推荐(0) 编辑
摘要: volatile 如果一个变量使用volatile修饰,那么当使用它的值时,一定会从内存中读出。 c++中之所以引入这个关键字,是因为有些编译器在编译的时候会对代码进行优化。下面是常见的优化: 假设有两个线程共享is_running变量: 线程1: while(is_running == 1) { 阅读全文
posted @ 2018-08-18 19:12 Frogjie 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 什么是指针 C语言中的所有变量都是存储在一块内存中的。以32位机器为例,char型的变量存储在一块1字节的内存中,int型的变量存储在一块4字节的内存中。指针本质上也是个变量,也存储在一块4字节的内存中。只不过指针那块内存中存储的是一个地址而已。我们可以把某个变量的4字节地址存储在指针的那块内存中。 阅读全文
posted @ 2018-08-15 23:48 Frogjie 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 在日常的工作中,bash shell 的时间操作非常频繁。比如shell脚本定时发送数据统计的时候,会查看当前是否为预定的发送时间。或者使用文件保存一些数据时,一般会生成时间字符串当做文件名的一部分。总结一下,以后再用到就不用上网到处翻了。 <1> 最基本的操作,获取当前时间(年-月-日 时:分:秒 阅读全文
posted @ 2018-08-15 21:36 Frogjie 阅读(432) 评论(0) 推荐(0) 编辑
摘要: <1> 获取字符串长度: ${#str} <2> 获取尾部字符串: ${str#*b}, 非贪婪匹配删除的部分,从字符串左边开始,删除掉第一个出现的'b'及其左边所有的字符串。 ${str##*b}, 贪婪匹配删除的部分,从字符串左边开始,删除掉最后一个出现的‘b’以及左边所有的字符串。 <3> 获 阅读全文
posted @ 2018-08-14 23:00 Frogjie 阅读(124) 评论(0) 推荐(0) 编辑
摘要: <1> load average 先来看一下linux中存活状态下进程的粗略分类: a. blocking process, 可能在等在IO或者自己调用wait系列的函数 b. runnable process, 所有资源一切就绪,就差cpu了,在任务队列里排队等待cpu资源 c. running 阅读全文
posted @ 2018-08-14 22:31 Frogjie 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 简介: netstat命令用于显示和检测机器的网络连接情况。并且可以跟据协议筛选自己想要看到的数据。比如有一天突然发现“too many open files”错误,就可以使用netstat来查看机器是否打开了大量的tcp连接。 使用方法: 简单的使用方式: netstat -[acCeFghilM 阅读全文
posted @ 2018-08-13 23:14 Frogjie 阅读(327) 评论(0) 推荐(0) 编辑