execute 0.1.40 → 0.1.41
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cmd.rb +11 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c30db8fb48cd4920cf89143cd05fb1dabf9492dc
|
4
|
+
data.tar.gz: 019ce53d33e1c029f8c38fc64e721911700075ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f07e3a9013f73b11a3601b496ac9cb6833ea8bf19aeb1d1931abb028475d72a931d1f30ab10ca798034a96316e13d7b32a876b2786b635b49487808df445a6f
|
7
|
+
data.tar.gz: 6c87d75e9a8373555d1d05377134a1ef1554e7de8f13bfc97ca571570f58cc5e000d9a3d726046e78c2822b8b0fd97e6fea6f96b75801f7eae233f6e1db6483b
|
data/lib/cmd.rb
CHANGED
@@ -125,11 +125,20 @@ class CMD < Hash
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
def interrupt
|
128
|
-
process = []
|
129
|
-
Sys::ProcTable.ps { |p| process << p if(p.ppid == self[:pid]) }
|
128
|
+
process = get_child_processes(self[:pid])
|
130
129
|
Sys::ProcTable.ps { |p| process << p if(p.pid == self[:pid]) }
|
131
130
|
|
132
131
|
process.each { |p| Process.kill(self[:timeout_signal],p.pid) unless(Sys::ProcTable.ps(p.pid).nil?) }
|
133
132
|
Process.waitpid(self[:pid]) unless(Sys::ProcTable.ps(self[:pid]).nil?)
|
134
133
|
end
|
134
|
+
def get_child_processes(pid)
|
135
|
+
processes = []
|
136
|
+
Sys::ProcTable.ps do |p|
|
137
|
+
if(p.ppid == pid)
|
138
|
+
get_child_processes(p.pid).each { |cp| processes << cp }
|
139
|
+
processes << p
|
140
|
+
end
|
141
|
+
end
|
142
|
+
return processes
|
143
|
+
end
|
135
144
|
end
|