如何在Windows操作系统中重新启动系统后获取旧的进程ID



我正在做一个项目,我需要在Windows操作系统中恢复进程的旧PID。

旧 PID 表示在系统重新启动之前提供给特定进程的 PID(例如,记事本被赋予 PID 100(。现在重新启动系统后,我需要较旧的 PID(100( 并再次启动该过程。

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\Windows\notepad.exe");

这是我的示例代码,如果可能,请提供解决方案或任何其他方法,我可以恢复旧的PID和旧的进程。

在 unix 系统上,通常的做法是在与脚本相同的目录中创建一个名为 .pid 的简单文本文件来启动和停止应用程序。它包含正在运行的进程的pid编号。

如果应用程序崩溃(或系统重新启动而没有完全关闭它(,则.pid文件将保留。

重新启动应用程序时,尽管从操作角度来看,.pid文件中包含的 pid 编号不再相关,但知道进程崩溃(或至少没有完全关闭(会很方便 - 通常操作的start脚本将检查.pid文件,并且在手动删除此文件之前不会启动应用程序。

所以你可以在你的情况下做类似的事情。您需要"包装"进程/服务启动和关闭以促进此操作。

这里有一个问题:什么是 .pid 文件,它包含什么?

您应该存储打开的应用程序(名称/exe 路径(的列表,而不是它们的 PID,因为在进程终止/中止后,旧的 PID 将毫无意义。重新启动应用程序后,操作系统将分配一个新的 PID,您作为程序员将无法控制。

相关内容

  • 没有找到相关文章