in reply to Getting Results back from System Call

There's two basic choices.
$status = system("command");
or
$output = `command`;
Pick the one you use, based on what you need to collect.

(If you're trying to say that your command is not working properly when invoked through a perl script (as opposed to being invoked interactively at the shell prompt), then it may be sensitive to whether its STDIN is attached to an interactive device like a tty. But that wasn't completely clear from your question.)

--
[ e d @ h a l l e y . c c ]

Replies are listed 'Best First'.
Re: Re: Getting Results back from System Call
by gtrattner (Initiate) on Aug 08, 2003 at 19:38 UTC
    The command runs in a Perl script when that script is run from a command prompt and not as a service. To run it as a service I am using the PDK and running perlsvc script.pl to create an executable and then installing that executable using script.exe -install. If I run script.exe from cmd it works fine when I run the service is when the rcmd command fails.

      Your problem is almost certainly a permissions thing.

      Windows NT services run as LocalSystem by default. LocalSystem is a predefined local account and any service running under LocalSystem:

      • The service can NOT open HKEY_CURRENT_USER .
      • The service can open HKEY_LOCAL_MACHINE\SECURITY.
      • The service has no network credentials and can only access network resources using a null session.

      As rcmd requires network access, if the service was set up with the default "LocalSystem" account, then it won't have the privaleges required to run rcmd. This is not a perl problem.

      'Hidden' within this readmore is non-perl related assistance.


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
      If I understand your problem, I can solve it! Of course, the same can be said for you.