在 Unix 环境中检测过时的 pid 文件

2023-12-05

在 Unix 环境中检测陈旧 pid 文件的标准、跨平台方法是什么?假设我想终止应用程序的旧实例,但如果该应用程序已经退出,我当然不想破坏具有相同 PID 的不相关进程。

现在我找到了一种在我的 Ubuntu(也可能是其他基于 GNU/Linux 的系统)上执行此操作的方法 - 伪代码如下:

if ( mtime(pid_file) < mtime( "/proc/"+pid ) ) {
     /* process started AFTER the file creation */
     /* so it's not what we're looking for */
     unlink(pid_file);
     return 0;
};
/* proceed to kill & do all stuff */

但这样的黑客攻击可以在其他系统上工作吗?无论如何,这应该是一项标准任务,其解决方案已有 30 多年的历史。

发现了类似的问题here,但未能找到我的问题的明确答案。

谢谢。


/proc/ 处的文件时间可追溯到至少1991年;见第14页。 243. 而且,尽管 mtime 可以伪造(例如通过touch -m --date=<needed_date> <target_file>),对于用户态应用程序来说,无法在其自己的 /proc/ 条目上执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Unix 环境中检测过时的 pid 文件 的相关文章

  • 如何使用 UNIX shell 计算字母在文本文件中出现的次数?

    我有几个文本文件 我想计算每个字母在每个文件中出现的次数 具体来说 我想使用 UNIX shell 来执行此操作 形式为 cat file 做东西 有没有办法让 wc 命令来执行此操作 grep char o filename wc l
  • SCP 权限被拒绝(公钥)。仅当在目录上使用 -r 标志时才在 EC2 上

    scp r Applications XAMPP htdocs keypairfile pem uploads ec2 user publicdns var www html 其中 uploads 是目录 返回权限被拒绝 公钥 Howeve
  • 验证假名输入

    我正在开发一个允许用户输入日语字符的应用程序 我试图想出一种方法来确定用户的输入是否是日语假名 平假名 片假名或汉字 应用程序中的某些字段不适合输入拉丁文文本 我需要一种方法将某些字段限制为仅限汉字或仅限片假名等 该项目使用UTF 8编码
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 从 shell 命令调用 SOAP 请求

    我使用curl 向Web 服务发送SOAP 请求 并使用shell 脚本获取响应 请在下面找到我正在使用的命令 curl H Content Type text xml charset utf 8 H SOAPAction d sample
  • [APUE]fork后父进程和子进程是否共享相同的文件偏移量?

    在 APUE 第 8 3 节中fork function 关于父子进程之间的文件共享 它说 It is important that the parent and the child share the same file offset 在
  • 面向对象编程语言中的引用默认情况下是否应该不可为空? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • “对象之间通过传递消息进行通信”到底是如何实现的?

    在几本有关面向对象编程的介绍性文本中 我遇到过上述陈述 来自维基百科 在 OOP 中 每个对象都能够接收消息 处理数据 以及发送消息与其他对象相关 并且可以被视为具有独特角色或责任的独立 机器 该语句在代码中到底意味着什么 class A
  • 通过 sed 使用 unix 变量将数据附加到每行末尾[重复]

    这个问题在这里已经有答案了 我有一个文件 我想使用 SED 将值附加到每行末尾的 unix 变量中 我已经通过 AWK 实现了这一点 但我想在 SED 中实现 像这样的东西 我已经尝试过以下命令 但它不起作用 sed i s BATCH R
  • 如何在unix中移动或复制“find”命令列出的文件?

    我有使用下面的命令看到的某些文件的列表 但是如何将列出的这些文件复制到另一个文件夹 例如 test 中 find mtime 1 exec du hc 添加到 Eric Jablow 的答案中 这是一个可能的解决方案 它对我有用 linux
  • 第二次ftruncate失败

    我试图在首次成功执行 shm open 和 ftruncate 后超出共享内存对象 这是代码 char uuid GenerateUUID int fd shm open uuid O RDWR O CREAT O EXCL S IRUSR
  • 用户的完整 UNIX 用户名

    想知道您是否知道是否有一种巧妙的方法可以从 shell 获取完整的用户名 示例 如果我的 UNIX 用户名是 froyo 那么我想获取我的全名 在本例中 如系统中注册的那样 froyo Abhishek Pratap Finger 命令可以
  • 关于使用My作为类名前缀的意见

    就我个人而言 我从来不喜欢MyObject类的命名 我猜现状会同意 但我想看看争论的另一面 以及它是否有任何有效性 我的 已被我使用 请使用其他内容
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • .zip 压缩内部是否维护校验和?

    zip 存档内部是否维护其中文件的校验和 如果它维护校验和 我如何确定校验和在解压过程中得到验证 是否可以在不解压的情况下验证校验和 是的 zip 保存存档中每个文件的 CRC 32 校验和 并且应该在解压缩过程中对其进行验证
  • 用矩阵变换 3D 向量的方法

    我一直在阅读一些关于用矩阵转换 Vector3 的文章 并且正在努力深入研究数学并自己编码 而不是使用现有代码 无论出于何种原因 我的学校课程从未包含矩阵 所以我正在填补我的知识空白 值得庆幸的是 我认为我只需要一些简单的东西 背景是我正在
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 对于简单的数据库/爱好者设置来说,什么是好的报告服务? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的 PC 上运行着一个微薄的生产环境 用于我在业余时间开发的一个小应用程序 此时我已经完成了基础设置

随机推荐

  • 如何跨文档库搜索共享点文件

    我正在尝试使用以下命令在 SharePoint 中搜索文件GET https graph microsoft com v1 0 sites root drive root search q text file 但它仅在根站点中搜索 有没有办
  • 将数据叠加到背景图像上

    我最近发现使用 Tableau Public 来使用背景图像和其上的地图数据是多么容易 这是他们的流程website 正如您所看到的 它相当简单 您只需告诉软件您要使用什么图像以及如何定义坐标即可 R 中的过程是否如此简单 最好的方法是什么
  • 使用 HTTP 标头进行 Rest 令牌身份验证

    这是一个带有登录屏幕的现有系统 现在我将一些服务公开为 REST 服务 我为此 Rest jersey 服务构建了一个身份验证令牌登录系统 用户发送用户名密码 然后服务器返回一个令牌 计算如下 sha1 username password
  • 将 pygame 窗口置于前面

    from os import environ environ PYGAME HIDE SUPPORT PROMPT hide import pygame import after disabling prompt screen pygame
  • 获取 ASP.NET 中 Referer 页面的 URL

    我正在开发一个 ASP NET 项目 目前正在做一些事情 基本上 我有三个不同级别的用户 1 管理员 2 车管所 3 来电者 所有用户都有各自的目录 并可以根据自己的权限访问目录中的资源 当某人想要登录该应用程序时 他必须使用根目录中存在的
  • Haskell 模式匹配字符串中的 char

    我有一个关于模式匹配的问题 是否有可能以某种方式匹配 string char anotherstring 我尝试过类似的事情 f s r s r the rhs is trivial but its just for testing 但这会
  • Ajax.ActionLink 中动态更新目标 id

    我在网格中有这段代码 我想要操作链接的 UpdateTargetId 每行的 div id 都要更改 div div 我试过了 但我没明白 div div
  • skydrive System.Dynamic.DynamicObject

    我正在尝试获取 SkyDrive 上登录用户的所有文件夹列表 LiveOperationResult operationResult await client GetAsync me skydrive files dynamic resul
  • 函数如何访问自己的属性?

    是否可以从函数作用域内访问 python 函数对象属性 例如让我们 def f return SOMETHING f x foo f gt foo 现在 如果我们想要返回 x 属性内容 foo 那么必须是什么 如果可能的话 简单地 than
  • LoggedInOutlet angular2 身份验证 - Router v3.0.0-alpha8 - ComponentInstruction 在哪里?

    我正在使用这样的代码来扩展 RouterOutlet 并创建应用程序范围的身份验证和路由保护 import Directive Attribute ViewContainerRef DynamicComponentLoader from a
  • webkitSpeechRecognition 抛出错误“网络”

    我有一个语音识别 使用 webkitSpeechRecognition 应用程序 在独立的 chrome 浏览器上运行时效果很好 我将我的应用程序转换为电子包 它停止监听麦克风并发送回带有消息 网络 的错误 该文档显示 完成识别所需的网络通
  • 一元运算符行为

    重新定义一元时出现一些奇怪的结果 Ruby 中的运算符Fixnum班级 不太清楚为什么事情会这样发生 特别是线009 irb 003 gt class Fixnum irb 004 gt def define unary irb 005 g
  • 如何重写单元测试中调用被测试类的方法

    我正在测试A类的函数func1 Func1有一个B类的局部变量 并调用B的函数func2 代码看起来像这样 public Class A public func1 B object new B int x object func2 some
  • Flutter (iOS) - 在 generatedPluginRegistrant.m 中找不到模块“cloud_firestore”

    我是颤振环境中的新生儿 我试图设置与我的应用程序的 Cloud Firestore 连接 我在 VSCode 上完成了大部分编码过程 但在实现 firestore 后 我尝试在 Xcode 中构建 因为我在 VSCode 上遇到了一些错误
  • 使用 Phonegap Build 在 Android 中隐藏状态栏

    我已经在 config xml 文件中启用了全屏 但是当键盘出现时 状态栏也会显示并保持在那里 除非我点击它 在 Ios 中有一种方法可以避免这种情况 但我还没有找到适用于 android 的任何内容 至少我可以用 jquery 以编程方式
  • Spring 抛出 NoClassDefFoundError: MethodInterceptor 尽管类存在于类路径中

    我正在使用 Spring MVC 和 Hibernate 开发一个简单的培训应用程序 我使用 Maven 作为构建工具 所有依赖项 spring hibernate 奥帕利安斯 junit 等 使用 Maven 的 pom xml 文件进行
  • Java if/else 行为异常

    我是一个真正的java新手 所以如果这是一个无可救药的简单问题 请原谅我 我的 java 游戏服务器有以下内容 Get input from the client DataInputStream in new DataInputStream
  • 如何始终将 PopUp 放置在 WPF 中的 ToggleButton 下

    我想在单击切换按钮时在其下方放置一个弹出窗口 在此弹出窗口中 我想添加按钮和其他控件 但是 当我调整主窗口大小时 如何确保弹出窗口始终位于切换按钮下方 我的 XAML 代码
  • 在 ARM 模板中定义时未应用 Azure 服务总线筛选器

    我在下面定义了一个 ARM 模板片段 它创建服务总线主题 订阅和规则 过滤器 该规则与主题和订阅一起应用 但过滤器的值为 1 1 为什么不应用该表达式 apiVersion 2017 04 01 name concat parameters
  • 在 Unix 环境中检测过时的 pid 文件

    在 Unix 环境中检测陈旧 pid 文件的标准 跨平台方法是什么 假设我想终止应用程序的旧实例 但如果该应用程序已经退出 我当然不想破坏具有相同 PID 的不相关进程 现在我找到了一种在我的 Ubuntu 也可能是其他基于 GNU Lin