Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nohup VERBOSE=1 perl script.pl

Tags:

shell

nohup

I have a perl script for which ENV variables can be set to direct specific outputs e.g. $debug, $verbose, $develop etc

Usually I run these from the command line

$ VERBOSE=1 perl myperlscript.pl params

I now want to run them using nohup. Using the command line

$ nohup VERBOSE=1 perl myperlscript.pl params 

is clearly not right, as the attempt to set ENV{VERBOSE} is interpreted as a param to nohup & I get the msg

nohup: failed to run command `VERBOSE=1': No such file or directory

What IS the correct syntax here? I'm trying to run this on a linux box.

like image 297
bobox Avatar asked Jan 11 '12 19:01

bobox


3 Answers

Set the environment variable before calling nohup, and it will be preserved when nohup exec()s (replaces itself with) perl.

$ VERBOSE=1 nohup perl myscript.pl params ...
like image 152
pilcrow Avatar answered Nov 17 '22 23:11

pilcrow


This is exactly what the env command is for:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &
like image 25
Josh Y. Avatar answered Nov 18 '22 00:11

Josh Y.


Try to combine all commands into shell script and run it like that: nohup /path/to/script.sh

Or you could use export: export VERBOSE=1 And then: nohup perl myperlscript.pl params

like image 1
Sergei Lomakov Avatar answered Nov 18 '22 00:11

Sergei Lomakov