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
|
# File 'lib/knj/x11vnc.rb', line 2
def initialize(args = {})
@args = ArrayExt.hash_sym(args)
@open = true
cmd = "x11vnc -q"
cmd << " -shared" if @args[:shared] or !@args.key?(:shared)
cmd << " -forever" if @args[:forever] or !@args.key?(:forever)
cmd << " -rfbport #{@args[:port]}" if @args[:port]
cmd << " -nolookup" if @args[:nolookup] or !@args.key?(:nolookup)
print cmd + "\n"
@thread = Knj::Thread.new do
IO.popen(cmd) do |process|
@pid = process.pid
process.sync
while read = process.read
break if read.length == 0
end
@open = false
@pid = nil
@thread = nil
end
end
Kernel.at_exit do
self.close
end
end
|