如何在qt中停止分离的进程
How to stop a detached process in qt?
使用QProcess::startDetached
启动进程后,如何停止它?
假设主程序运行,然后启动独立运行的分离进程。用户关闭主程序,然后再次打开主程序并想要停止进程。我怎样才能找到这个过程,然后停止它呢?
是否有一种方法可以防止应用程序从相同的过程两次?
不,它将与您的应用程序解耦。您可以获得它的PID,然后在Linux上发送SIGSTOP,但这是特定于平台的,没有POSIX支持就无法工作,就像msvc一样。您需要在其中手工制作您的版本。
是否有一种方法可以防止应用程序从相同的过程两次?
是的,通过在分离进程中使用锁文件。如果这个分离的进程碰巧至少部分是用Qt编写的,你可以使用QLockFile类。
如果您碰巧分离了一些特定于平台的进程,那么您肯定会再次出现相同的问题。
我想出来的答案是:
我首先启动生成唯一id的分离进程。该进程每次运行时都会写入文件(是1分钟计时器)。当它运行时,它将自己的id写入一个文件。然后,如果碰巧有另一个运行了,如果它看到前一个运行了,它就把它的id写入文件而不运行,然后,当下一个运行时,它会看到它的id是否已经在文件中,如果是,它会关闭自己并清除文件,然后下一个运行结束,是唯一一个运行的。这可能最终会跳过一些时间。
您也可以添加时间戳,因为这可能表明它最近没有运行,并有助于决定是否关闭它。问题是,如果我只是把id写入一个文件,当我关闭手机时,文件会说它还在运行。这同样适用于崩溃
相关文章:
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- C++:如何读取分离变量,然后读取向量
- 分离一个静态常量 std::thread?
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 如何在 c++ 中将数据与文件流分离
- 终止 QProcess 不会终止子进程
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- XCode 附加进程/分离进程(以编程方式分离调试器)
- Visual Studio 2010无法从进程分离
- 是否有任何已知的技术可以使用将 DLL 插件分离到它自己的进程中?
- 读取分离进程的控制台输出
- 如何在qt中停止分离的进程