如何在Mac/Linux中制作难以杀死的进程?

swa*_*ohn 2 linux macos process

我意识到这听起来像恶意软件程序会做的事情,所以我理解你是否有些人对我的意图持怀疑态度.对于一个供其他人使用的程序,我绝不会这样做,但我也意识到其他人可能会查看答案并自行完成.

当我上网时,我的工作效率会下降,所以我想写一个程序,每隔一段时间就会自动关闭我的连接.但是知道我,我可能只是sudo杀了-9它一旦它变得烦人,我想让它稍微困难,所以我不会一直这样做.对此的任何建议(或其他方法来实现我正在尝试做的事情)?我正在考虑将其命名为与另一个进程相同的事情所以我必须花一些时间来弄清楚我需要杀死什么,经常用cron作业生成一个进程等等.

pax*_*blo 14

Jargon文件中,对于IT行业历史爱好者以及想要了解我们所谈论内容的人来说,总是很好的阅读:

=====

早在20世纪70年代中期,摩托罗拉的一些系统支持人员发现了一种在Xerox CP-V分时系统上破解系统安全性的相对简单的方法.通过简单的编程策略,用户程序可以欺骗系统以"主模式"(管理员状态)运行程序的一部分,其中内存保护不适用.然后,程序可以将一个大值戳入其"特权级别"字节(通常是写保护的),然后可以继续绕过文件管理系统中的所有安全级别,修补系统监视器,并执行许多其他有趣的操作.简而言之,谷仓门敞开着.

摩托罗拉通过官方的"1级SIDR"(一个错误的报告显示"需要在昨天修复")向XEROX报告了这个问题.由于每个SIDR的文本都输入了一个可以被很多人查看的数据库,摩托罗拉遵循了批准的程序:他们只是将问题报告为"安全SIDR",并附上所有必要的文档,方法 - 分别再生产等.

施乐坐在他们的拇指上......他们要么没有意识到问题的严重性,要么没有分配必要的操作系统人员资源来开发和分发官方补丁.

几个月过去了.摩托罗拉家伙纠缠他们的Xerox现场支持代表,但无济于事.最后,他们决定采取直接行动,向施乐管理层展示系统破解的容易程度,以及破坏系统安全系统的彻底程度.

他们在操作系统列表中挖掘,并设计了一套完全恶魔的补丁.然后将这些补丁纳入一对名为Robin Hood和Friar Tuck的程序中.Robin Hood和Friar Tuck被设计为'ghost jobs'(守护进程,在Unix术语中); 他们会使用现有的漏洞来破坏系统安全性,安装必要的补丁,然后密切关注彼此的状态,以防止系统操作员(实际上是超级用户)中止它们.

所以...有一天,El Segundo主要CP-V软件开发系统的系统操作员对一些不寻常的现象感到惊讶.其中包括以下内容:

  • 磁带机会在作业过程中倒带和卸下磁带.
  • 磁盘驱动器会来回寻找,以至于他们试图走过地板.
  • 卡片打孔输出设备偶尔会启动并打孔(每个打孔).这些通常会堵塞.
  • 控制台会打印从Robin Hood到Friar Tuck的讽刺和侮辱性消息,反之亦然.
  • Xerox读卡器有两个输出堆叠器; 它可以被指示堆叠成A,堆叠成B,或堆叠成A,除非卡片不可读,在这种情况下,坏卡被放入堆叠器B.鬼魂安装的一个补丁添加了一些代码到卡 - 阅读器驱动程序......读完卡后,它会翻转到对面的堆栈器.结果,卡片组在读取时会将自己分成两半,让操作员手动重新组装它们.

还产生了一些其他效果.

当然,操作员呼叫操作系统开发人员.他们发现强盗幽灵的工作正在进行,并且他们对他们进行了扫描......并再次感到惊讶.当Robin Hood被X'ed时,发生了以下一系列事件:

!X id1
id1: Friar Tuck... I am under attack!  Pray save me!
id1: Off (aborted)
id2: Fear not, friend Robin!  I shall rout the Sheriff of
     Nottingham's men!
id1: Thank you, my good fellow!

每个ghost-job都会检测到另一个被杀的事实,并会在几毫秒内启动最近被杀的程序的新副本.杀死两个幽灵的唯一方法是同时杀死它们(非常困难)或故意使系统崩溃.

最后,系统程序员做了后者......只是发现当系统重启时强盗再次出现!事实证明,这两个程序修补了启动时图像(/ vmunix文件,用Unix术语),并将自己添加到启动时要启动的程序列表中......

当系统人员从干净的启动磁带重新启动系统并重新安装显示器时,Robin Hood和Friar Tuck鬼魂终于被彻底根除了.此后不久,Xerox发布了针对此问题的补丁.

据称,施乐向摩托罗拉管理层提起诉讼,指控这两名员工的快活恶作剧行为.没有记录对他们中的任何一方采取任何严重的纪律处分.

=====

因此,结果就是拥有多个工作(尽可能多的工作),相互监控并在必要时重新启动.您还需要保护kill语句的变体,它可以在一次命中中杀死一大堆进程.


run*_*ako 5

获取一个小部件以在桌面上显示您的银行余额(或配偶的皱着眉头,或孩子的饥饿的脸)。

当您意识到这与浪费的Internet使用之间存在联系时,您将停止。您只需要创建适当的刺激/响应反馈回路,即可做出适当响应。

  • 是的,我认为训练自己的意志力比提出一些精心设计的方案对自己造成麻烦要有意义得多。我的意思是,每次您不应该使用互联网时,最终仍然需要意志力才能真正执行该程序。 (2认同)