Ustawiłem zmienną środowiskową za pomocą /etc/profile
:
export VAR=/home/userhome
Jeśli to zrobię, echo $VAR
to pokaże/home/userhome
Ale kiedy umieszczam odniesienie do tej zmiennej w /etc/init.d/servicename
pliku, nie może ona znaleźć tej zmiennej. Gdy uruchamiam service servicename status
przy użyciu /etc/init.d/servicename
pliku o następującej treści:
case "$1" in
status)
cd $VAR/dir
;;
esac
to mówi /dir: No such file or directory
Ale działa, jeśli uruchomię /etc/init.d/servicename status
zamiastservice servicename status
Jak sprawić, by usługa unix widziała zmienne środowiskowe?
rc
skryptu System 5 również nie działa w ten sposób na systemowych systemach operacyjnych, ponieważ wszystkie wywołania skryptu są zamieniane w wywołaniasystemctl
ukrytego haka.