[Win32utils-devel] [ win32utils-Support Requests-22149 ] open3 and daemon

noreply at rubyforge.org noreply at rubyforge.org
Mon Dec 29 08:23:59 EST 2008


Support Requests item #22149, was opened at 2008-09-24 15:18
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=412&aid=22149&group_id=85

Category: win32-service
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Florian Dütsch (der_flo)
Assigned to: Nobody (None)
Summary: open3 and daemon

Initial Comment:
open3 blocks in combination with a daemon.
here is the example-code:

################################################################################
require 'win32/open3'
require 'win32/daemon'
include Win32
################################################################################
COMPUTER_NAME = 'test'
LOGFILE = 'C:\test.txt'
PSLOGGEDON_EXE = 'D:\pstools\psloggedon.exe'
################################################################################
class Daemon

  def service_main
    while running?
      # User ermitteln
      users = []
      i, o, e = Open3.popen3("#{PSLOGGEDON_EXE} -l \\#{COMPUTER_NAME}")
      i.close
      e.close
      o.readlines.each do |line|
        m = /^DOMAINNAME\(.*)$/.match line
        users << m[1] if m
      end
      o.close
      
      txt = "#{Time.new.strftime('%d.%m.%Y %H:%M')} - #{users.join(',')}"
      File.open(LOGFILE, 'a') { |file| file.puts txt }
      
      sleep 1 * 60
    
    end
  end
    def service_stop
    exit!
  end
end
################################################################################
Daemon.mainloop
################################################################################


The service/daemon looks for logged in users on a specific host and logs it to a file. The tool psloggedon (http://technet.microsoft.com/de-de/sysinternals/bb897545.aspx ) 

When not using a service and calling the open3-stuff directly everything is ok. But when starting as a service the psloggedon.exe does not exit. I don't know why and debugging is quite hard.

Any ideas?

Thanks,
der flo

----------------------------------------------------------------------

Comment By: Grzegorz Marszałek (graf0)
Date: 2008-12-29 13:23

Message:
Hello!

Maybe problem is that STDIN, STDOUT  and STDERR are redirected to NULL when your code runs as service? Just guessing...

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=412&aid=22149&group_id=85


More information about the win32utils-devel mailing list