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

SigFit实战:从FEA到光学仿真的热力耦合分析全流程解析

在光机系统与芯片封装等精密工程领域,热与力的耦合效应是影响产品性能与可靠性的核心物理问题。有限元分析(FEA)是预测结构在热、力载荷下变形与应力的基础工具,但其结果通常无法直接用于评估光学性能。这需要一座桥梁,将物理场数据转化为光学设计语言。其核心原理在于数据映射与面形表征技术,例如通过泽尼克多项式拟合,将离散的节点位移分解为离焦、像散等标准光学像差。这项技术的工程价值在于,它实现了多物理场仿真的闭环,使工程师能在设计阶段精准预测热变形或应力对波前误差、调制传递函数等关键光学指标的影响。其典型应用场景包括高

weixin_28630185的博客 338

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

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

报喜鸟 1985

LBS之五:时空索引--空间邻域搜索的高效实践

时空索引的原理及最佳实践

whascj的博客 1365

深入理解 ABAP 中的 Fast Data Access:从 @itab 到 FOR ALL ENTRIES 的性能关键路径

ABAP性能优化的关键在于理解Fast Data Access(FDA)机制,它连接了应用服务器的内表与数据库运算。FDA允许将内表数据推送到数据库进行筛选、聚合等操作,是SELECT...FROM@itab语法的基础。开发者需注意:1)该语法可能在内置引擎或数据库执行;2)仅当SQL能力超出ABAP范围时才建议使用;3)需通过CL_ABAP_DBFEATURES检查数据库支持情况。合理使用FDA可优化批量数据处理,但滥用可能导致性能下降。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1269

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

程序功能: 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

华为OD机试 - 第k个排列 - 全排列递归(Python/JS/C/C++ 2025 C卷 100分)

给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有n!按大小顺序升序列出所有排列的情况,并一一标记当n=3时,所有排列如下“123”,“132,“213”,“231”,“312”,“321”输入两行,第一行为n,第二行为k,给定n的范围是[1,9],给定k的范围是[1,n!排列为“12”和“21”,第2个是“21”。给定n和k,返回第k个排列。输出排在第k位置的数字。只有一个排列,直接返回。

学Java,找哪吒 983

Linux kill 命令 以及USR1 信号解释

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

Yonx 4315

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。由于机考时题目顺序是打乱的,本文题目所标序号只为区分不代表实际顺序。综合知识。

一几文的编程学习笔记。 9278

如何跑通SuperPoint+LightGlue的训练代码使用gluefactory进行训练和评估?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 1786

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

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

weixin_30798713的博客 795

YOLOv10改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

如何寻找创新点?为什么要使用这个模块?如何才能提升模型的精度?这是贯穿我们研究始终的问题。创新点在这个专栏中我已经整理好了,这已经省去了大部分时间,但是当我们使用这些新的模块去优化已有的模型,如何才能提升模型的精度,才是我们要达到的最终目标。当然我们可以使用传统的A+B+C的方法去堆积模块,然后是进行大量的实验去排列组合以实现最终的精度提升,这无可厚非。

Limiiiing的博客 1万+

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

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

weixin_39761880的博客 230

YOLO26训练自己的数据集,从代码下载到实例测试 (含YOLO26网络结构图)

在Windows10上配置CUDA环境教程2026年1月14日,YOLO26是最新发布的计算机视觉模型。支持多种任务,包括目标检测、实例分割、图像分类、姿态估计、有向目标检测以及物体跟踪等。以上就是YOLO26训练自己数据集的全部过程啦,欢迎大家在评论区交流~

Limiiiing的博客 6495

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

weixin_42524750的博客 348

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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、付费专栏及课程。

余额充值