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

LVGL 实战:虚拟列表与对象复用机制在嵌入式GUI中的性能优化

本文深入探讨LVGL虚拟列表与对象复用机制在嵌入式GUI中的性能优化实践。通过复用机制动态管理UI对象,大幅降低内存占用,实现无限滚动列表的流畅体验。文章详细解析核心算法、内存优化策略及跨平台适配技巧,帮助开发者在资源受限设备上高效处理大量数据展示。

rice5的博客 1106

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

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

报喜鸟 1985

实战指南:如何用Frida绕过某梆加固的Anti-Frida检测(附完整脚本)

本文深入剖析了企业级加固方案中的Anti-Frida检测机制,并提供了实战对抗策略。通过分析基于文件系统、内存特征、行为及环境的多层次检测原理,文章详细介绍了如何定位检测逻辑、绕过maps文件扫描、对抗内存与行为特征检测,并附上了针对某梆加固的完整绕过脚本与系统化工程方案。

weixin_42527589的博客 600

KVNAND架构:解决边缘设备部署LLM的内存与带宽挑战

大语言模型(LLM)在边缘设备部署时面临内存容量和带宽限制的核心挑战。传统方案依赖DRAM存储KV缓存,导致高昂成本和性能瓶颈。闪存计算(IFC)通过计算单元下沉和流水线优化缓解部分问题,但仍受限于DRAM依赖。KVNAND架构创新性地将KV缓存直接存储在3D NAND闪存中,结合异构计算和页面级KV映射技术,显著降低延迟和能耗。该架构特别适用于长上下文场景,如文档分析和个人助理应用,能有效解决内存溢出(OOM)问题并提升计算单元利用率。关键技术包括头组并行(HG)执行和混合键合设计,为边缘AI部署提供了新

weixin_27215337的博客 320

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

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

推荐系统(十六):基于ESMM的商品召回/推荐系统

ESMM(Entire Space Multi-Task Model)是阿里巴巴提出的多任务学习框架,通过联合建模点击率(CTR)和点击转化率(CVR)解决传统CVR模型样本稀疏问题。其核心思想是将 CVR 定义为 CTR 与 CTCVR 的条件概率,模型包含两个子任务。

Jin_Kwok的博客 1265

Linux kill 命令 以及USR1 信号解释

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

Yonx 4315

小众但实用:Python爬取钉钉/企业微信消息,实现办公数据自动化采集(完整版)

钉钉/企业微信的办公数据自动化采集,属于「小众但极度实用」的Python技巧——它不像爬虫爬取电商/网页数据那样被广泛关注,但能直接解决职场人的「刚需痛点」,把每天1-2小时的手动数据整理工作,变成「一键自动化完成」。这套技巧的核心价值,不在于「技术有多高深」,而在于「能真正落地、能真正提升效率」—— 几行简单的Python代码,就能解放双手,让你从繁琐的重复工作中解脱出来,专注于更有价值的核心工作。更重要的是:所有的技术和代码,都是基于「合规合法」的前提,守住了技术的底线,也守住了职场的原则。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1931

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1385

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

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

weixin_30798713的博客 795

三极管、MOS管和晶体管综合对比——《器件手册--三极管、MOS管和晶体管》

IGBT(Insulated Gate Bipolar Transistor,绝缘栅双极型晶体管)是一种复合全控型电压驱动式功率半导体器件,结合了MOSFET的高输入阻抗、开关速度快的优点和双极型晶体管(BJT)的低导通压降、高电流密度的优点。例如,在NPN型三极管中,当基极电流增加时,集电极电流会按照一定的比例(放大倍数β)增加,这个比例通常在几十到几百之间。在NMOS管中,当栅极相对于源极的电压(Vgs)小于开启电压(Vth)时,漏极和源极之间没有导电沟道,电流无法通过,处于截止状态。

XU157303764的博客 2881

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

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

weixin_39761880的博客 230

《Android最全面试题-Offer直通车》目录

如今Android求职是僧多粥少,竞争非常激烈,企业招聘时要求很高,本专栏汇聚android面试各种考点,各大公司Android面试题,《Android 最全面试题》将助你全方位提升,助您脱颖而出,早日拿到满意Offer。本专栏汇聚了海量优质内容,文章数量超过100 篇。凭借过硬的质量,每月新增订阅用户数以百计,如今仅需特惠价 9.9 元,限时抢购,后续将逐步恢复原价,早订阅早开启逆袭之旅。精心筹备,整理出一系列超万字精华篇章,累计数十万的 Android 面试题深度剖析。

大模型大数据攻城狮的专栏 2860

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

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

weixin_42524750的博客 348

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

余额充值