最近,我遇到了一个Linux应用程序设计。该应用程序的缩进是通过Linux中的dumpcap <> api记录以太网帧。但它们的实现方式如下:
在execl()中调用dumpcap <>,如下所示
a。 grades = {
("DD1", 1) : 45,
("DD1", 2) : 75,
("DD1", 3) : 25,
("DD1", 4) : 65,
("DD2", 1) : 85,
("DD2", 2) : 40,
("DD2", 3) : 70,
("DD2", 4) : 80,
}
dataBases = {
'grades': grades
}
def listGrades(dataBase, group):
list_of_score = []
for key, value in dataBase.items():
if key[0] == group:
list_of_score.append(value)
return list_of_score
dataBase = input("Which database?")
group = input("which group?")
dataBase = dataBases.get(dataBase, {})
print(listGrades(dataBase, group))
b。 execl("/bin/sh", "/bin/sh", "-c", dumpcap<>, NULL);
他们发送SIGTERM杀死进程
现在面临的问题是,当我们在1184或1185 no:files之后的进程中运行命令时,dumpcap停止记录。该过程和线程仍然存在,这是我们在顶部命令中可以看到的命令。