linux kill 命令 以及 USR1 信号 解释

Linuxc 信号的使用1 kill和signal函数 1.进程A向进程B发送SIGUSR1信号;2.进程B收到信号后,打印字符串“receive SIGUSR1”;3.要求用kill函数和signal函数实现以上功能;源代码:kill.c#include <stdio.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/types.h>#inc... 阅读详情

最近 在做 服务器搭建的一些工作,其中 用到了 日志 转存 的部分。 

日志转存 是这么写的


/home/server/souledge/log/game.log
{
    missingok
    copytruncate
    size 1
    sharedscripts
    postrotate
        echo "start--------------"
        [ -f /var/run/nginx.pid ] &&  kill -USR1 `cat /var/run/nginx.pid`
        mv /home/server/souledge/log/game.log.1 /home/server/souledge/log/game.`date -d "1 hour ago" +%Y%m%d%H`
        echo "end-----------------"
    endscript
}


对于  [ -f /var/run/nginx.pid ] &&  kill -USR1 `cat /var/run/nginx.pid` 产生了 兴趣,


1.[ -f ]  解释 [ 是 linux 命令, 不信, which [ 试试;跟 test 命令 含义 一样 ;  [ -f xxx] 是 测试 文件 是否 存在

2. 系统将 进程xx 的 进程号 存储 在 /var/run/xx.pid 文件下 ;所以 `cat /var/run/nginx.pid` 是为了 取到 nginx 的进程号

3.kill -USR1 看下文


USR1信号 解释

摘自: http://www.xuebuyuan.com/323422.html


USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。

以上摘自wiki:

http://zh.wikipedia.org/wiki/SIGUSR1%E5%92%8CSIGUSR2

呃,近日发现还有USR2,貌似这个USR1和2都可以用户自定义的,同样摘自上面的wiki:

在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件signal.h中定义。在不同的平台上,信号的编号可能发生变化,因此需要使用符号名称。

 

kill -HUP pid 或者 killall -HUP pName:
其中pid是进程标识,pName是进程的名称
如果想要更改配置而不需停止并重新启动服务,可以使用上面两个命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
根据约定,当你发送一个挂起信号(信号1或HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。

与HUP有什么不同?????? (待以后解答)

 

以下转自技术博客“贝塔中的DBA”http://www.dbabeta.com/2009/dd-progress.html

作者:马齿苋

我需要的信息是:

【killall命令,和kill命令一样,其作用是给指定的进程发送一个信号过去,不是平常所理解的仅仅是结束一个进程  
SIGHUP(1):对于没有那些不与终端交互的守护进程(Deamon Process),通常的设计是在接收到SIGHUP信号之后就会重新读取配置文件。】

而文章全文是:

命令

今天在commandlinefu.com网站看到这么一篇文章check the status of ‘dd’ in progress,试了下,效果很好。

现在一个终端中开启一个dd进程

dd if=/dev/zero of=/data3/test bs=1k count=1024000

然后在另外一个终端中用while来反复执行killall命令

while killall -USR1 dd; do sleep 5; done

然后就能看到间隔5秒一次的输出结果了

292289+0 records in 
292288+0 records out 
541861+0 records in 
541860+0 records out 
760037+0 records in 
760036+0 records out 
886602+0 records in 
886601+0 records out 
1007881+0 records in 
1007880+0 records out 
1024000+0 records in 
1024000+0 records out

所执行的killall命令循环会在dd命令执行结束之后退出。

说明

可能不熟悉linux的人会问了,为什么dd命令的进度输出要killall命令来激发呢?其实答案很简单,dd的进度输出就是这么设计的,再详细
点就是dd命令在执行的时候接收到SIGUSR1信号的输出当前的读写进度,而killall命令在这里起的作用就是给dd进程发送这个信号。

killall命令,和kill命令一样,其作用是给指定的进程发送一个信号过去,不是平常所理解的仅仅是结束一个进程,就像下面摘录的man kill里面描述的一样。

DESCRIPTION 
      The command kill sends the specified signal to the specified process or 
      process group.  If no signal is specified, the  TERM  signal  is  sent. 
      The  TERM  signal  will  kill processes which do not catch this signal. 
      For other processes, it may be necessary to use the  KILL  (9)  signal, 
      since this signal cannot be caught.

所以上面的”while killall -USR1 dd; do sleep 5; done”就是每隔5秒就给所有的dd命令进程发送一个USR1信号,dd命令进程接收到信号之后就打印出自己当前的进度。

因为kill命令能传递的信号不仅仅是SIGTERM(kill pid)和SIGKILL(kill -9
pid),还有很多其他的信号值,在这里面还有一个很经常用的就是SIGHUP(1)了,对于没有那些不与终端交互的守护进程(Deamon
Process),通常的设计是在接收到SIGHUP信号之后就会重新读取配置文件。比如下面的

# 当你对smb.conf修改之后,运行下面的命令,修改就能生效了 
# 而不用再来一个smb restart 
killall -HUP smbd
利用Linux信号SIGUSR1调试嵌入式程序 Linux嵌入式由于诸多的限制,调试方法有限,常常出现面对Bug束手无策的情况,现在介绍一种通过信号处理对Linux嵌入式应用程序进行调试的方法。linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到,具体如下:SIGHUP ;SIGINT ;SIGQUIT ;SIGILL ;SIGTRAP ;SIGABRT ;SIGIOT 阅读详情

相关推荐

【linux】kill命令信号总结

kill 命令的详细总结,除了kill -9 还有很多

TomRen 2万+

killall -USR1&-HUP

USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。 以上摘自wiki: http://zh.wikipedia.org/wiki/SIGUSR1%E5%92%8CSIGUSR2 呃,近

pear86743的专栏 6170

保姆级教程:在RK3568上搞定PR2100K+GC2385双摄(从DTS配置到HAL层补丁)

本文详细介绍了在RK3568平台上调试PR2100K+GC2385双摄系统的完整流程,从DTS配置到HAL层补丁。涵盖硬件连接、媒体控制器拓扑验证、Camera3配置、HAL层特殊补丁及性能优化等关键步骤,帮助开发者快速解决双摄调试中的常见问题,提升嵌入式视觉系统开发效率。

weixin_28724661的博客 195

nginx系列(二十三)kill -USER1原理

在没有执行kill -USR1 `cat ${pid_path}`之前,即便已经对文件执行了mv命令而改变了文件名称,nginx还是会向新命名的文件” xxx.log_ 20130909”照常写入日志数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。 [color=red]一 对linux文件描述符的理解[/color] 文件描述符是linux内核为每个打开的文件命名的一...

报喜鸟 1985

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1148

基于PSO-BP神经网络的风电功率预测研究论文复现

风电功率预测。基于PSO-BP神经网络的风电功率预测论文复现。matlab程序,注释清晰。

weixin_825487230的博客 2295

进程间通信-信号(一个进程往另一个进程发送信号)

程序功能: signal.c程序接收两个信号,SIGUSR1,SIGUSR2,接收到SIGUSR1之后,执行sig_usr_close函数,打印,并将全局变量m_switch置为0;接收到SIGUSR2之后,执行sig_usr_open函数,打印,并将m_switch置为1。 kill.c程序主要发送两个信号,SIGUSR1,SIGUSR2。 1、信号发送函数-kill() #inc...

背着行囊去远方的博客 4000

【异常】OpenClaw网关仪表盘 pairing required 报错排查与解决方案

在OpenClaw网关仪表盘页面,完成WebSocket URL、网关令牌等必填项配置后,点击「连接」按钮尝试建立网关连接时,页面下方出现红色报错提示框,核心报错内容为,无法完成网关连接建立,且该报错在令牌配置正确、网络链路通畅的场景下仍会触发。该报错常见于非本地回环地址的访问场景,包括局域网远程访问、公网域名/IP访问、云服务器部署的网关远程管理等场景,本地127.0.0.1回环地址访问通常可正常连接。

奶爸的编程之路,也就一周冷个三天 1078

Linux kill 命令 以及USR1 信号解释

kill 中的USR信号解释 USR1通常被用来告知应用程序重载配置文件 例如:向Apache HTTP服务器发送一个USR1信号将发生以下情况 1. 停止接受新的连接,等待当前连接停止; 2. 重新载入配置文件; 3. 重新打开日志文件; 4. 重载配置文件,从而实现相对平滑的不关机更新配置 在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件signal.h中定义。在不同的平台上,信号的编号可能发生变化,因此需要使用

Yonx 4315

CRMEB开源电商系统 /api/products SQL注入漏洞复现(CVE-2024-36837)

2024年6月,CRMEB开源电商系统发布了新补丁,修复了一处SQL注入漏洞(CVE-2024-36837)。经分析,该漏洞可以通过请求api的路径接口来进行SQL注入,进而可能导致敏感信息泄露,该注入可暴露后台web绝对路径,深入利用可获取服务器权限,该漏洞无前置条件且利用简单,建议受影响的用户尽快修复漏洞。

0xSec 2882

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

1563

linux kill命令信号,Linux kill 命令 以及USR1 信号解释

kill 中的USR信号解释USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件sig...

weixin_30798713的博客 795

【CloudCompare教程】017:点云快速全局配准

点云数据的配准分为基于特征(特征点、特征线)的拼接和无特征拼接。特征点匹配的方法和全局ICP的方法。特征点的方法通过全局特征匹配达到全局配准,全局ICP的方法通过对变量空间进行搜索的方法达到全局最优解。

智慧空间实验室 3929

linux关机之后出kill,Linux kill 命令 以及USR1 信号解释

kill 中的USR信号解释USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件sig...

weixin_39761880的博客 230

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

初始环境安装。

废人一枚的博客 5081

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

linux渭蜂进程方式,linux kill 命令 以及 USR1 信号 解释

USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。kill -HUP pid 或者 killall -HUP pName:其中pid是进程标识,pName是进程的名称如果想要更改配置而不需停止并重新启动服务,可...

weixin_42524750的博客 348

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Linux之kill各种信号介绍

今天翻阅资料发现一个命令,kill -USR1 `cat /var/…/nginx.pid`,比较好奇这个USR1是什么鬼,于是就仔细研究了下。 原来kill后面有很多命令,要查看有哪些命令可以使用: kill -l 就会看到很多信号,这些信号具体存放位置: cat /usr/include/bits/signum.h 每个信号后有个解释,其中我想要了解的USR1看了注释也不是很明白,就去看了下大神写的文章: https://www.cnblogs.com/zafu/p/9267215.html

Quincy.Coder的博客 845

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

linux USR1亦通常被用来告知应用程序重载配置文件

linux kill 命令 以及 USR1 信号 解释 原创 2016年03月16日 16:48:27 标签:linux kill -USR1 5325 最近 在做 服务器搭建的一些工作,其中 用到了 日志 转存 的部分。 日志转存 是这么写的 /home/server/souledge/log/game.log { missingok copytrunca...

weixin_33989780的博客 99

kill常用信号(hup,USR1)

kill -HUP pid kill -USR1 pid   pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。 根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。清单 2 显示了向所有正在运行的 Web 服务器进程发送挂起信号...

qq_23587541的博客 3593
上一篇: tailf、tail -f、tail -F三者区别
下一篇: Linux系统CentOS(5.x和6.x版本)安装GNOME和KDE中文远程桌面以及中文支持
Laputa_Net
博客等级 码龄9年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值