我有一个代码库(主要是C++),它经过了很好的测试,没有崩溃。多半是。代码的一部分--它是不可替代的,很难维护或改进,并且针对二进制库*的链接--导致所有崩溃。这种情况不会经常发生,但当它们发生时,整个程序就会崩溃。
+----------------------+
| Shiny new sane |
| code base |
| |
| +-----------------+ | If the legacy
我一直试图使用subprocess32.Popen,但这会导致我的系统崩溃(CPU 100%)。因此,我有以下代码:
import subprocess32 as subprocess
for i in some_iterable:
output = subprocess.Popen(['/path/to/sh/file/script.sh',i[0],i[1],i[2],i[3],i[4],i[5]],shell=False,stdin=None,stdout=None,stderr=None,close_fds=True)
在此之前,我有以下几点:
import
我有个奇怪的情况。
我有一个c写的程序“A”,它以其他可执行文件的名称作为参数。“B”、“C”、“D”等“A”的主要工作是分叉并启动“B”、“C”等,然后检查它们是否崩溃,在这种情况下重新启动崩溃的进程。
此外,进程“A”为RTC同步目的运行一个分离的线程。“A”以/bin/sh -c A B C D etc开头。
我所处的是一个嵌入式环境,我使用的是从Linux4.4.57派生的自定义内核。
现在问题是:有时候我的过程“A”变成了僵尸!
我所提出的一些意见:
启动“A”的父进程/bin/sh -c仍然有效;
处理“B”、“C”等的子程序都没有死亡;
“A”对信号作出反应;
如果我杀死了父进程