【发布时间】:2017-03-05 11:26:02
【问题描述】:
在 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 */
但是这样的 hack 会在其他系统上起作用吗?无论如何,这应该是一项标准任务,并且有 30 多年的解决方案。
找到了一个类似的问题here,但没能找到我的问题的明确答案。
谢谢。
【问题讨论】:
标签: unix language-agnostic pid