in reply to Re^5: Win32::Daemon service doesn't reach RUNNING state
in thread Win32::Daemon service doesn't reach RUNNING state

In fact, your solution does not fully fit my needs : if I try to exit from the windows that was used to launch the 'start' command, it hangs. And if I close that windows 'by force', the perl script does not run any longer.

So that's not a real daemon behaviour, because I do not want a window to be attached to the program.

Any hint ?

--
zejames
  • Comment on Re^6: Win32::Daemon service doesn't reach RUNNING state

Replies are listed 'Best First'.
Re^7: Win32::Daemon service doesn't reach RUNNING state
by BrowserUk (Patriarch) on Sep 14, 2004 at 16:45 UTC
    ...your solution does not fully fit my needs...

    Like I say, it would be easier if you would explain what your needs are...

    Maybe this will do what you want?

    P:\test>type detach.pl ## A script to detach scripts #! perl -lw use strict; use Win32::Process; print "@ARGV"; my $cmdline = "perl.exe @ARGV"; print $cmdline; Win32::Process::Create( my $hProc, $^X, $cmdline, 0, DETACHED_PROCESS, '.' ) or die $^E; print "PID: ", $hProc->GetProcessID; P:\test>type test.pl ## A script to detach #! perl -slw use strict; close $_ for *STDIN, *STDOUT, *STDERR; open LOG, '>', 'my.log' or die $!; select LOG; $|=1; print ~~localtime while sleep 2; P:\test>del my.log P:\test>cmd Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. P:\test>detach test.pl test.pl perl.exe test.pl PID: 3540 P:\test>u:tail -f my.log Tue Sep 14 17:39:05 2004 Tue Sep 14 17:39:07 2004 Tue Sep 14 17:39:09 2004 Tue Sep 14 17:39:11 2004 Tue Sep 14 17:39:13 2004 Tue Sep 14 17:39:15 2004 Tue Sep 14 17:39:17 2004 ^C P:\test>exit ^C P:\test>u:tail -f my.log Tue Sep 14 17:39:07 2004 Tue Sep 14 17:39:09 2004 Tue Sep 14 17:39:11 2004 Tue Sep 14 17:39:13 2004 Tue Sep 14 17:39:15 2004 Tue Sep 14 17:39:17 2004 Tue Sep 14 17:39:19 2004 Tue Sep 14 17:39:21 2004 Tue Sep 14 17:39:23 2004 Tue Sep 14 17:39:25 2004 Tue Sep 14 17:39:27 2004 Tue Sep 14 17:39:29 2004 ^C

    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
Re^7: Win32::Daemon service doesn't reach RUNNING state
by ikegami (Patriarch) on Sep 14, 2004 at 16:58 UTC

    To run perl without a console, use wperl.exe instead of perl.exe. You'll have to open STDOUT yourself if you intend to use it.