1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
from __future__ import print_function
#
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
import datetime
import os
import random
import re
import shlex
import subprocess
import sys
import time
import shutil
from subprocess import check_output, CalledProcessError
def t_getPIDs(process):
try:
pidlist = map(int, check_output(["pidof", process]).split())
except CalledProcessError:
pidlist = []
#print process + ':list of PIDs = ' + ', '.join(str(e) for e in pidlist)
return pidlist
def t_kill_process_by_name(p_keywords):
pid_list = []
ps_info = subprocess.check_output(shlex.split("ps aux")).split("\n")
for p in ps_info:
if p_keywords in p:
tmp = p.split(" ")
tmp = [x for x in tmp if len(x) > 0]
pid_list.append(tmp[1])
for pid in pid_list:
cmd = "kill -9 {}".format(pid)
subprocess.call(shlex.split(cmd))
return pid_list
#proc -> name of the process
#kill = 1 -> search for pid for kill
#kill = 0 -> search for name (default)
def t_process_exists(proc, kill = 0):
ret = False
processes = t_getPIDs(proc)
for pid in processes:
if kill == 0:
return True
else:
print("kill [" + proc + "], pid=" + str(pid))
os.kill((pid), 9)
ret = True
return ret
def t_copy_files(source_dir, pattern, dest_dir):
files = os.listdir(source_dir)
for file in files:
if file in ('/', '.', '..'):
continue
if pattern in ('*', '') or files.endswith(pattern):
shutil.copy(source_dir+"/"+ file, dest_dir)
|