坑人的“杀手”组织

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

我是一个进程,一出生就被塞了一张长长的任务单,上面是密密麻麻的任务指令,像什么 mv 了, cp 了, while 了.....   我一个都看不懂。

人类程序员告诉我这叫 shell 脚本,我的任务就是跑跑腿,到 shell 大街上找到能够执行这些指令的人,让他们去执行。

这个活儿听起来并不复杂,我按照人类的指示,进入了 shell 大街。

初试身手

shell 大街上热闹非凡,各种进程来来往往,两旁的街道是大大小小、形形色色的门店,我左看右看,眼睛都不够使了。

比如我旁边这家店,招牌巨大,上面写着 【我们不生产文件,我们只是文件系统的搬运工】,这是 “mv” 旗舰店。还有街口这家店,招牌也气势非凡:【你负责从 0 到 1,我搞定 1 到 100】,原来这家店专门负责抄录备份文件,叫做 cp ,也是旗舰店。

我从怀里掏出任务单,看看我要干的活, 我希望指令是 mv 或者 cp,这样我就可以去逛逛旁边这两家旗舰店了。

可是,第一条指令是 “pidof xyz”, 我环顾四周,怎么在 shell 大街上看不到 pidof 店铺?

这时候街上的大喇叭响了:进程管理局将于 4:30 下班,需要查询进程id的速速前往 shell 大街 0x37859 号。

下班真够早的,我一溜小跑,来到 0x37859 号,在办事窗口小姐姐的帮助下查到了 “xyz” 的进程id:8681, 按照要求,我把它记录在了变量 $process_id 中。

杀手组织

这个工作看起来很简单嘛, 我马上查看第二条指令,真是不看不知道,一看吓一跳,这条指令是:

kill $process_id

我揉揉眼睛再确认一下,没错,就是 kill , 那个 $process_id 不就是我刚刚查出来的吗?8681!没想到查询这个 pid 的值居然是为了干掉这个进程, 也不知道他做错了什么。

我还没办过这种差呢,kill,看这个名字这是个杀手组织吧,肯定都是杀进程不眨眼的那种,太可怕了!

这个叫 kill 的店可真不好找,多亏 cp 旗舰店的小二给我指了一条路,我才来到这个店铺门口, 我以为这里肯定是严密把守,门口会有彪形大汉站岗,没想到只是一个平平常常的小店!门口挂着两个随风飘扬的大灯笼,上面写着:“送” “信”。

这就是 kill 门店?杀手组织的驻地就这样?怀着忐忑的心情,我走进店中。

出乎我的意料, 小二非常热情,他马上满脸堆笑地迎上来:“客官您要办点什么业务呢,咱们这儿的信件是最全的,应有尽有,任君挑选”。

看到墙上还贴着 "微笑服务” 四个字,我差点怀疑走错片场了,我把他拉到一边,压低声音说:"我不是来送信的,我这次来是要杀一个进程,你们能办吗?"

我一边说,一边做了一个杀头的手势。

小二看了看我的任务单,说道:“客官是第一次来吧,你要办的这个是常规业务,我们最拿手了。不过你说的这个杀进程我们保证不了,小店只提供送信服务, 这封信送出去,进程能不能杀得掉就不归我们管了。”

“你们不是负责杀人吗?怎么和送信这种没技术含量的业务扯到一起了?”

小二笑道:“这是外界对我们的误解了,我们不是一个杀手组织, 我们的业务很单纯,只负责送信给进程。而且这封信还得通过内核老大转交呢!比如你这次要 kill 8681, 我们就会发送一封叫做 SIGTERM 的信,意思是终止进程。”

小二边给我解释,边掏出系统调用专用手机发送了一个 "15  8681",这下我知道了, SIGTERM 对应的信号值就是 15,小二通过系统调用发给了内核。

“杀人” 的活儿就这么办完了,我付了 3 块的 CPU 币, 满怀疑虑地离开了这个“送信”的店铺。

死循环

下一个指令竟然是个 while 循环,它让我隔一会儿就去进程管理局查询一下,直到 $process_id (也就是 8681 )不存在了才能执行后续的任务。 我心里很清楚,这是要保证那个8681的进程被杀死。

我一趟趟地往进程管理局跑,累死个人了,可是这个进程管理局的小姐姐每次都告诉我,这个 8681 号进程活得好好的,正在shell大街的某个角落呼呼大睡呢!

肯定是“送信”的那个店小二把我骗了 !趁着 while 循环的间隙,我怒气冲冲地回到了“送信”店铺,质问小二为什么收了我的钱不干活!

店小二脾气挺好:“我们送信,绝对不会出错的,但是,我们不能保证进程被杀死。”

我说到:“那你给我退钱,我去找别的杀手。”

小二哈哈笑道:“客官有所不知,你到哪里都是一样,对于 SIGTERM 信号,一般内核老大确实会干掉对应进程,但如果进程提前打过招呼,留下了一个自己的 SIGTERM 处理函数,那么按照约定老大就只会调用下这个函数。函数里面进程也许会做一些扫尾工作再退出,也许压根就不退出,继续逍遥快活。甚至进程还可以直接屏蔽掉这个信号呢。我猜 8681 号进程就是如此,赖着不退出。”

我满脸愁色:“那这样不相当于从生死簿上勾去姓名,长生不老了吗?!不管怎么样,你得把它给杀掉!"

小二闻言露出了老江湖的笑容:“客官听说过江湖传言吗?kill 一笑,生死难料,杠九一(安)排 ,世间白来。”

我若有所悟,连忙问道: "杠九是什么意思,是 9 号信件吗?"  

小二闻言露出赞许的目光:“看来你还是挺机灵的,一点就通。9 号信件那就是大名鼎鼎的 SIGKILL 了。虽然大多数信件都允许进程注册自定义信件处理函数,但有几个特别的信件,例 SIGKILL 和 SIGSEGV 是不允许注册处理函数的,一旦内核老大收到 我们送的 SIGKILL 信号,那就相当于杀无赦,斩立决,手起刀落毫不迟疑的。一般用 kill 杀不掉的进程,用上 kill -9 就可以干掉了。”

原来如此 !可是虽然知道了 SIGKILL ,但悲惨的是我只能按照任务单来执行任务,不能擅自更改为 kill -9 $process_id

天哪!难道我真的就被困在这里了吗?!

定身法

生活不易,进程叹气,我无精打采地准备出门,继续去查询进程,估计进程管理局的小姐姐都很烦我了,每次都问同一个问题。

就在我准备迈出 kill 小店时,怪事发生了,我动不了了!就像是中了定身术一样。

小二跑上前来看了看说 :“哈哈, 看来你被挂起了!”

我焦急地问:“说清楚点,什么是挂起呀?”

小二从柜台拿出了一张信件清单给我看:“喏,看到这个 SIGTSTP 没,它会让进程挂起,我们店也有这项业务的。估计是人类程序员发现你迟迟没有执行下一个任务,开始调试了。只要他们按下 Ctrl+Z,就会发出 SIGTSTP ,内核老大就把你挂起了。你小子还挺幸运的,只是被挂起,上次有个进程办事出了点小差错,直接就被人类按下了 Ctrl+C,用 SIGINT 给干掉了。慢慢等着吧,人类慢得很呐!”

在 kill 小店真是学了不少东西,真希望人类程序员也能快点学会这些知识,解救我于水火之中。

不过我显然高估了人类,足足过了十几秒,我才看到另一个进程来到了 kill 小店中,他手中的任务单赫然写着 "kill -9 8681",  谢天谢地,人类找到解决方法了。

又过了漫长的好几秒,我才感到身体一轻,又可以活动了。

舒展下筋骨,我连忙跑到进程管理局去查询,这次查询结果是 "查无此pid",哈哈,我终于可以摆脱这个循环,继续我任务单的下一条了。

尾声

离开之前,进程管理局的小姐姐还告诉了我一个小道消息,原来这个害我不浅的 8681 进程并不是故意忽略 SIGTERM 的,他注册了一个信号处理函数,打算打印一句 log 再退出,但在执行的时候竟然死锁了,据说原因是打印函数不属于异步信号安全的函数,不能在信号处理时调用。

我管不了那么多了,赶紧去执行下一个任务,要不然又要被挂起了......

后记:

本文来自庄秋彬的投稿,老刘做了修改,如果你有好的文章(技术、职场、个人成长等),欢迎向码农翻身投稿,能标记原创的,稿费700元。

如果你也“痛恨”这样的资料和文章:一上来就是技术细节,安装步骤、配置方法,让初学者晕头转向,不知所云,看完了以后也不知道为什么有这个东西,解决了什么问题,它有什么来龙去脉, 那你一定要看一下“码农翻身”!

这里准备了50篇精华中的精华: 《用故事讲解技术,尽在码农翻身》  涉及到计算机基础知识的方方面面,可收藏可转发,enjoy!

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

标准的异步信号安全函数

2014-09-06 wcdj y

delphiwcdj的专栏 8768

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

C++人工智能坑人小游戏

今天啊,博主刷子博客的时候,发现了一段特别坑人的小代码,于是乎,我灵机一动,把这个代码进行了改版,写出了这么一个坑人小游戏,望大家喜欢 #include<iostream> #include<cstdio> #include<Windows.h> #include<algorithm> using namespace std; int main() { int a, b; cout << "请输入您的幸运数字吧" << endl

弹炒饭的博客 4913

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

毁掉孩子自信的10个杀手

转自凤凰网. 我终于知道我这倒霉性格怎么来的了,见过坑人的,你们一定没见过坑自己孩子的父母吧! 所以我就转了这片文章过来,让各位做父母或即将为人父母的看看,别坑了自己的孩子!!! -------------------------- 以下10点是家长教育孩子过程容易做错的伤害孩子自尊心的行为。如果不对这些行为加以避免,会极大地伤害孩子的自尊心。 1.父母为孩子包办一切 太多的中国家

优秀技术文章收录 1163

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

能见度:交通气象中的头号杀手与高精度监测预报实战

在交通气象领域,影响行车安全的因素远不止雨雪,低能见度才是引发群死群伤事故的隐形杀手。与暴雨、暴雪带来的线性感知衰减不同,雾天能见度会发生断崖式下跌,留给驾驶员的反应时间以秒计。理解能见度的物理本质,如比尔-朗伯定律与气象光学视程(MOR),是构建高精度气象服务的基础。从高速公路的分级管控到航运、航空的严格阈值,不同交通场景对能见度监测与预报的精度、时效要求各异。真正落地的挑战在于设备选型、微地形修正、数据质控以及预警触达链路,唯有将观测数据、降尺度算法与一线经验结合,才能实现从“报得准”到“警得快”的跨越

weixin_28702105的博客 76

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

异步信号安全函数列表

 home   contributing   bugs   download   online pages   NAME | DESCRIPTION | CONFORMING TO | BUGS | SEE ALSO | COLOPHON SIGNAL(7) Linux Programmers Ma

primer2006的专栏 3645

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

可重入和不可重入函数、异步信号安全函数、线程安全函数

要解释可重入函数为何物,首先需要区分单线程程序和多线程程序。典型UNIX程序都具有一条执行线程,贯穿程序始终,CPU围绕单条执行逻辑来处理指令。而对于多线程程序而言,同一进程却存在多条独立、并发的执行逻辑流。 如果同一个进程的多条线程可以同时安全的调用某一函数,那么该函数就是可重入的。此处,“安全”意味着,无论其他线程调用该函数的执行状态如何,函数均可产生预期结果。 SUSv3对可重入函数的定...

qu1993的博客 2800

从MFCC到GMM:手把手教你用Python实现说话人识别(附完整代码)

本文详细介绍了如何使用Python实现说话人识别系统,从MFCC特征提取到GMM模型训练,涵盖完整的技术流程和代码示例。通过梅尔频率倒谱系数(MFCC)和高斯混合模型(GMM)的结合,构建高效的说话人识别系统,适用于身份认证和智能交互场景。文章还探讨了从传统方法到深度学习的进阶话题,如i-vector和x-vector技术。

o1p2q3r的博客 200

使用kmplot在线进行生存分析

欢迎关注”生信修炼手册”!kmplot是一个生存分析的在线工具,最初是设计用来对肝癌中的miRNA进行生存分析,对应的文章发表在scientific reports上,链接如下https...

庐州月光的博客 1万+
上一篇: 一口气带你踩完五个 List 的大坑,真的是处处坑啊!
下一篇: 让你看看什么是真正的设计!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值