in reply to how to call system commands from cgi file?

kpofcochin:

Keep in mind that the environment for the account that the webserver uses will be different than your account. There will be differences in the path, permissions, etc. You really don't want the webserver account to have too much access to the rest of your system, so it's likely to be locked down fairly well.

If you can, run the CLI program from the webserver account, and you can start figuring out which environment changes you may need to get the script to run.

On the other hand, since you say that the utility script is in perl, you might consider extracting the interesting bits into a perl module. Then you could simply load the module in your web application and use it. Using the modulino concept, you can make your perl code both a script *and* a module, something like:

sub some_interesting_function { ... here we do the real work ... } sub main { ... This is called if run as a script ... ... blah, blah, blah, setup ... some_interesting_function(various arguments); } # Detect if we're being called as a CLI script or module. If CLI # script, execute main. main(@ARGS) unless caller();

For more information on modulinos, check out http://perltricks.com/article/107/2014/8/7/Rescue-legacy-code-with-modulinos.

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: how to call system commands from cgi file?
by kpofcochin (Initiate) on Jun 26, 2015 at 12:25 UTC
    hey there, thanks for the guidance. I even tried converting the system call as a perl package. to crosscheck the control flow i gave a logging mechanism to check what all calls came to that module. my pseudo code will look like this: my $r = qx(function_name $arg1 $arg2 $arg3); if i execute function_name $arg1 $arg2 $arg3 in CLI or called from different perl file, it works!!!!
Re^2: how to call system commands from cgi file?
by kpofcochin (Initiate) on Jun 26, 2015 at 13:36 UTC
    I believe its a problem with web server account permissions as you suggested. I need to invoke a "expect" utility file on button click. how do i do this?!

      kpofcochin:

      If you need to do that, and your web account doesn't have permissions, then you'll need to talk with your system administrator and find out the procedure to request more permissions for the account so that you can do it.

      ...roboticus

      When your only tool is a hammer, all problems look like your thumb.