Ответ 1
Задайте переменную окружения перед вызовом nohup
, и она будет сохранена, когда nohup
exec() s (заменяет себя) perl
.
$ VERBOSE=1 nohup perl myscript.pl params ...
У меня есть perl script, для которого переменные ENV могут быть настроены на прямые конкретные выходы например $debug, $verbose, $develop и т.д.
Обычно я запускаю их из командной строки
$ VERBOSE=1 perl myperlscript.pl params
Теперь я хочу запустить их с помощью nohup. Использование командной строки
$ nohup VERBOSE=1 perl myperlscript.pl params
явно не прав, поскольку попытка установить ENV {VERBOSE} интерпретируется как параметр nohup, и я получаю сообщение msg
nohup: не удалось выполнить команду `VERBOSE = 1 ': нет такого файла или каталога
Каков правильный синтаксис здесь? Я пытаюсь запустить это в окне linux.
Задайте переменную окружения перед вызовом nohup
, и она будет сохранена, когда nohup
exec() s (заменяет себя) perl
.
$ VERBOSE=1 nohup perl myscript.pl params ...
Именно это команда env
предназначена для:
$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &
Попробуйте объединить все команды в оболочку script и запустить ее так: nohup/path/to/ script.sh
Или вы можете использовать экспорт: экспорт VERBOSE = 1 А потом: nohup perl myperlscript.pl params