摘要:fg、bg、jobs、&、ctrl + z命令一、 &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行 三、jobs查看当前有多少在后台运行的命令jobs -l 选项可显示所有任务的PID,jobs
阅读全文
11 2020 档案
摘要:一、信号及信号来源 信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。 信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知
阅读全文
摘要:【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了
阅读全文
摘要:sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数ol
阅读全文
摘要:sigprocmask系统调用 使用条件: 1、有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。这种情况是通过阻塞信号实现的。 2、信号阻塞和忽略信号的区别。 阻塞的概念和忽略信号是不同的。操作系统在信号被进程解除阻塞之前不会讲信号
阅读全文
摘要:信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程
阅读全文
摘要:今天碰到一个SIGHUP问题,再复习一遍: 有些信号的默认处理方式为“终止+core”,这里的core表示,进程终止时,会在进程的当前工作目录生产一个core文件,该文件是进程终止时的内存快照,以便以后供debugger调试用。 以下情况不会生产core文件: (1)为程序设置了set-user-I
阅读全文
摘要:学习和借鉴前人经验,加之美化一番 ### # @Author: hanxiaoshun # @Date: 2020-07-08 15:53:34 # @LastEditTime: 2020-09-05 10:54:45 # @LastEditors: Please set LastEditors #
阅读全文
摘要:通用看门狗脚本用来监控服务进程名,端口,进程数等,使用时可以用python watchdog.py -h 查看说明,不足之处请指正。 下载地址:https://github.com/ljw4010/easy-to-watch
阅读全文
摘要:最近项目的看门狗经历了三个版本。 第一个版本: 用ps -ef,如果程序挂了就启动 第二个版本: 程序由于运行时会出现不再监听7901端口,所以不能简单判断机器是不是挂了,而是判断此端口是否有监听 第三个版本: 当7901端口不再监听,就先把原来的killall再启动,每次输出到文件的内容都加日期,
阅读全文
摘要:Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设
阅读全文
摘要:0x00前言 文章中的文字可能存在语法错误以及标点错误,请谅解; 如果在文章中发现代码错误或其它问题请告知,感谢! 0x01 watchdog(看门狗)简介 最近由于业务需要需要一个watchdog来确保设备上运行的程序在崩溃后可以再次重启,所以进行了一些研究。watchdog(看门狗)就是为了让自
阅读全文
摘要:Intro 当我们编写服务器代码时,为了让自己的服务器在意外崩溃时能够及时的重启,软件看门狗就显示出它的作用了,该看门狗进程是通过fork一个子进程(业务进程),父进程一旦捕获到了子进程的结束信号就重新再fork一个子进程来实现的,下面将完整代码贴上。 /**********************
阅读全文
摘要:昨天做了一个udhcpd与udhcpc的守护,目前只会用shell模仿编写,还有什么方法可以做守护呢? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #! /bin/sh #进程名字可
阅读全文
摘要:举个栗子:idea的注册服务 位置及文件:/etc/init.d/idea idea #!/bin/sh # chkconfig: 2345 80 90 # description: idea register server case "$1" in start) sh /usr/local/ide
阅读全文
摘要:服务管理介绍 服务(Service)本质是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙等),因此我们又称为守护进程,是Linux中非常重要的一个知识点。 服务进程原理图.png 一、service管理指令 service 服务名 [start
阅读全文
摘要:systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。这篇文章主要介绍了Linux 服务管理两种方式service和systemctl,需要的朋友可以参考下 1.service命令 service命令其实是去/etc/in
阅读全文
摘要:前言# 我们在linux上要启动一个程序得时候, 往往都是要写一堆路径, 找到要启动得服务程序, 再用 ./*** 启动服务. 那么我们有没有快速启动方法吗, 答案是肯定得 service 介绍# 官方介绍(英文): https://linux.die.net/man/8/service 简单说一下
阅读全文
摘要:在CMake中if语法比较简单,if后面括号中的参数随着CMake版本的推进,在else和endif中也可以不用写了。 if(address) else() endif() 对于if语法,比较常用的就是字符串比较了,这里个人简单用到过两种,一种是这个变量有没有定义过。有两种写法可以验证 if(DEF
阅读全文
摘要:CMake option 使用场景 : 编译脚本传递参数 -> CMake脚本接收option -> 源代码宏 编译脚本传入参数传入一个cmake option TEST_DEBUG #!/bin/sh cmake -DTEST_DEBUG=ON . cmake --build . CMake脚本接
阅读全文
摘要:每个Socket在Linux中都映射为一个文件,并与内核中两个缓冲区(读缓冲区、写缓冲区)相关联。 或者说,每个Socket拥有两个内核缓冲区。 有时,我们需要修改缓冲区的内核限制的最大值,使其符合我们的实际需求。 一、系统设置 [jiang@localhost ~]$ uname -a Linux
阅读全文
摘要:shell将变量当命令执行问题【多条命令同时执行问题】 今天写了个shell脚本,脚本中需要将变量当做shell命令运行,通常的方法有多种,比如: `${var}` 将变量内容当shell命令行执行 $(${var}) 将变量内容当shell命令执行 ${var}将变量内容当shell命令执行【不推
阅读全文
摘要:1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是:make xxx > build_output.txt此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以
阅读全文
摘要:nohup和&究竟有啥区别?不少同学进行了回复,但并不是所有同学都理解得全对,今天把自己挖的坑自己填了。测试代码如下:是一个输出hello与循环轮数的死循环程序,每输出一行就休眠1秒。 使用 ./a.out 前台运行程序,会是什么效果呢?程序每隔一秒会在终端输出一个字符串。 此时如果键入Ctrl+C
阅读全文
摘要:shell中可能经常能看到:1>/dev/null 2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print $4}'` 1>/dev/null 2>/dev/null 命令的结果可以通过%>的形式来定义输出/dev/null 代
阅读全文
摘要:查看支持的解释器我们一般使用bash来解释运行我们的shell脚本 编写shell脚本,按照规范最好使用.sh结尾创建一个shell脚本文件,在shell中输入了相关命令,然后使用bash shellFile.sh执行成功 执行shell脚本的三种方式1.指定shell命令的解释器,去执行一个带有s
阅读全文
摘要:脚本文件test.sh: #!/bin/bash printf "%s\n" "hello world" 可通过以下方式分别调用不同的shell执行脚本文件: /bin/sh test.sh /bin/bash test.sh 另外也可以直接执行,此时脚本文件的第一行指定了调用哪个shell来执行脚
阅读全文