six-updater-web 0.20.7 → 0.20.8
Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile
CHANGED
@@ -146,7 +146,7 @@ class Appsetting < ActiveRecord::Base
|
|
146
146
|
end
|
147
147
|
|
148
148
|
def processes
|
149
|
-
Six::Appmanager.find_process(process_name)
|
149
|
+
Six::Appmanager.find_process(process_name, self.real_path)
|
150
150
|
end
|
151
151
|
|
152
152
|
def read_logfile
|
@@ -154,7 +154,7 @@ class Appsetting < ActiveRecord::Base
|
|
154
154
|
end
|
155
155
|
|
156
156
|
def kill!
|
157
|
-
Six::Appmanager.kill_by_name(process_name)
|
157
|
+
Six::Appmanager.kill_by_name(process_name, self.real_path)
|
158
158
|
end
|
159
159
|
|
160
160
|
def rpt
|
@@ -48,16 +48,44 @@ module Six
|
|
48
48
|
|
49
49
|
# TODO: Kill by ... multiple properties. gamefolder, etc.
|
50
50
|
|
51
|
-
def kill_by_name(name)
|
52
|
-
find_process(name).each { |process| kill(process) }
|
51
|
+
def kill_by_name(name, path = nil)
|
52
|
+
find_process(name, path).each { |process| kill(process) }
|
53
53
|
end
|
54
54
|
|
55
|
-
def find_process(name)
|
55
|
+
def find_process(name, path)
|
56
56
|
pids = []
|
57
|
+
logger.info "Checking for #{name} - #{path}"
|
57
58
|
|
58
59
|
begin
|
59
60
|
case RUBY_PLATFORM
|
60
61
|
when /-mingw32$/, /-mswin32$/
|
62
|
+
%x[WMIC PROCESS get Caption,ExecutablePath,ProcessId].each_line do |l| #Commandline
|
63
|
+
line = l.clone
|
64
|
+
line.chomp!
|
65
|
+
line.strip!
|
66
|
+
reg = /([0-9]*)$/
|
67
|
+
line[reg]
|
68
|
+
pid = $1
|
69
|
+
line.sub!(reg, "")
|
70
|
+
line.strip!
|
71
|
+
line[/^([\w ]*\.\w*)[ ]*(.*)/]
|
72
|
+
image, full = $1, $2
|
73
|
+
next if image.nil?
|
74
|
+
|
75
|
+
case image.downcase
|
76
|
+
when name.downcase
|
77
|
+
unless path && !full.nil?
|
78
|
+
pids << pid
|
79
|
+
next
|
80
|
+
end
|
81
|
+
logger.info File.join(path, name).sub("/", "\\").downcase
|
82
|
+
logger.info full.downcase
|
83
|
+
if File.join(path, name).sub("/", "\\").downcase == full.downcase
|
84
|
+
pids << pid
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
=begin
|
61
89
|
out = %x[tasklist]
|
62
90
|
out.split("\n").each do |line|
|
63
91
|
if line =~ /\A#{name}[\t| ]*([0-9]*)/
|
@@ -68,7 +96,11 @@ module Six
|
|
68
96
|
end
|
69
97
|
end
|
70
98
|
end
|
99
|
+
=end
|
71
100
|
else
|
101
|
+
# TODO: Include exe/cmdnline check;
|
102
|
+
# /proc/PID/exe
|
103
|
+
# /proc/PID/cmdline
|
72
104
|
%x[ps -A | grep #{name}].split("\n").each do |line|
|
73
105
|
unless line[/grep/]
|
74
106
|
line[/^\s*([0-9]*)/]
|