URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91631
[ Назад ]

Исходное сообщение
"Freebsd 8.2 переменнные сокружение"

Отправлено alkasar , 24-Май-11 09:41 
всем привет, вопрос возник насчет переменного окружения

freebsdtest# uname -a
FreeBSD freebsdtest.pampampam.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0:

для запуска одного скрипта в определенном режиме нужна переменная  
TRATATA=1

хочу этот скрипт запускать из  /usr/local/etc/rc.d/skript.sh , от имени левого пользователя skriptuser  , и пользователю заместо стандартной оболочки прописать  /sbin/nologin

если задавать переменную

set TRATATA=1  

скрипт не видит
а если через

setenv TRATATA 1

то скрипт схватывает переменную и все ок, НО
после reboot этой переменной не сохраняется, мб я что нибудь не так делаю ?  

естественно все  под рутом.
и так же хотелось бы подробней разобраться откуда они берутся и как их можно изменить не только через setenv


Содержание

Сообщения в этом обсуждении
"Freebsd 8.2 переменнные сокружение"
Отправлено PavelR , 24-Май-11 09:52 
> НО после reboot этой переменной не сохраняется, мб я что нибудь не так
> делаю ?

И не должно и не будет сохраняться.

> и так же хотелось бы подробней разобраться откуда они берутся и как
> их можно изменить не только через setenv

выставляются скриптами через setenv



"Freebsd 8.2 переменнные сокружение"
Отправлено alkasar , 24-Май-11 10:01 
>> НО после reboot этой переменной не сохраняется, мб я что нибудь не так
>> делаю ?
> И не должно и не будет сохраняться.

а  почему так? =\


"Freebsd 8.2 переменнные сокружение"
Отправлено PavelR , 24-Май-11 10:12 
>>> НО после reboot этой переменной не сохраняется, мб я что нибудь не так
>>> делаю ?
>> И не должно и не будет сохраняться.
> а  почему так? =\

"если звезды загораются, значит это кому-нибудь нужно...?"

ну потому так, что все, кому что надо - пишут это в свои скрипты setenv, а если надо выставить на глобальном уровне, то пишут в конфиг файлы.

http://www.freebsd.org/doc/ru/books/handbook/shells.html
http://otvety.google.ru/otvety/thread?tid=175cce2a36087c08


"Freebsd 8.2 переменнные сокружение"
Отправлено Vitaly_loki , 24-Май-11 12:53 
>>> НО после reboot этой переменной не сохраняется, мб я что нибудь не так
>>> делаю ?
>> И не должно и не будет сохраняться.
> а  почему так? =\

Ну а почему IPшник, вручную назначенный через ifconfig, после ребута пропадает? Тут то же самое


"Freebsd 8.2 переменнные сокружение"
Отправлено alkasar , 24-Май-11 13:16 
> Ну а почему IPшник, вручную назначенный через ifconfig, после ребута пропадает? Тут
> то же самое

а ну да  логично, спасибо


тогда вопрос такой, как добавить глобальную переменную
через /.cshrc не подходит т.к. входа в систему особо часто не предусматривается, а ребут возможен
через /etc/profile  не работает
через тот же скрипт в /usr/local/etc/rc.d/skript.sh  не работает т.к. на сколько я понял команда setenv встроенная в csh , как запустить команду  из csh  не загружая его не допер,


есть еще варианты?? уже дело дошло до правки самого скрипта=\


"Freebsd 8.2 переменнные сокружение"
Отправлено Vitaly_loki , 24-Май-11 15:06 
>если задавать переменную
>set TRATATA=1  
>скрипт не видит

Это потому что set устанавливает переменные для sh, а не для [t]csh. Заменить вначале #!/bin/csh на #!/bin/sh (но возможно придется и скрипт переписывать) и будет скрипт "видеть" переменную через set


> тогда вопрос такой, как добавить глобальную переменную
> через /.cshrc не подходит т.к. входа в систему особо часто не предусматривается,
> а ребут возможен
> через /etc/profile  не работает
> через тот же скрипт в /usr/local/etc/rc.d/skript.sh  не работает т.к. на сколько
> я понял команда setenv встроенная в csh , как запустить команду
>  из csh  не загружая его не допер,

Во-первых, есть файл /etc/csh.cshrc

А во-вторых, никогда не видели скрипты, у которых в начале определяются переменные, типа:
#!/bin/sh
ext_if="rl0"

теперь "ifconfig $ext_if" это то же самое, что и "ifconfig rl0"

Может лучше так?


"Freebsd 8.2 переменнные сокружение"
Отправлено sTALK_specTrum , 24-Май-11 15:36 
Сдаётся мне - неверно поставленная задача приводит к поискам решения класса "через ass автогеном".

"Freebsd 8.2 переменнные сокружение"
Отправлено alkasar , 24-Май-11 16:00 
> Сдаётся мне - неверно поставленная задача приводит к поискам решения класса "через
> ass автогеном".

правильная задача звучит так, есть скрипт VNC Repeater на Perl, есть сервер на FreeBSD
надо заставить работать скрипт от пользователя Repeater в состоящего только в группе Repeater  и имеющего default shell = nologin, запускающегося и работающего  в фоновом режиме

Скрипту нужно прописать две глобальных переменных это ULTRAVNC_REPEATER_LOOP=BG  и ULTRAVNC_REPEATER_LOGFILE=/tmp/u.log


"Freebsd 8.2 переменнные сокружение"
Отправлено alkasar , 24-Май-11 16:03 
>> Сдаётся мне - неверно поставленная задача приводит к поискам решения класса "через
>> ass автогеном".
> правильная задача звучит так, есть скрипт VNC Repeater на Perl, есть сервер
> на FreeBSD
> надо заставить работать скрипт от пользователя Repeater в состоящего только в группе
> Repeater  и имеющего default shell = nologin, запускающегося и работающего
>  в фоновом режиме
>  Скрипту нужно прописать две глобальных переменных это ULTRAVNC_REPEATER_LOOP=BG  и ULTRAVNC_REPEATER_LOGFILE=/tmp/u.log

проблему решил, можно сделать финт ушами
через env передать определенные переменные, определенной программе
вот так

env ULTRAVNC_REPEATER_LOOP=BG ULTRAVNC_REPEATER_LOGFILE=/tmp/u.log /usr/local/bin/ultravnc_repeater.pl

и такой скрипт добавил