부팅시 실행되는 서비스가 있으며 해당 서비스에서 일부 환경 변수를 내보내는 백그라운드에서 bash 스크립트를 호출합니다. 내가 겪고있는 문제는 해당 환경 변수가 백그라운드 프로세스의 부모에게 보내지지 않아 스크립트 실행이 완료되면 사라집니다.
또한 스크립트가 실행 된 후 서비스가있는 응용 프로그램을 시작하는 다른 스크립트를 호출합니다. 이 응용 프로그램은 해당 환경 변수에 액세스해야합니다.
내가 실행하는 RHEL 시스템은 사용자가 절대로 로그인하지 않으며 부팅 및 응용 프로그램 만 시작합니다. 부모 프로세스 / 셸의 환경 변수는 실제로 자식 백그라운드 프로세스 셸에서 설정할 수 없다는 것을 알고 있습니다.
내 서비스에서 호출하지 않는 스크립트를 통해이 작업을 수행 할 수있는 방법이 필요합니다 (필자는 백그라운드는 아니지만). 내 서비스에 추가하지 않고 (나에게도 효과가 없었습니다) /etc/environment
또는 .profile
또는 그와 같은 것.
내 서비스에서 환경 변수를 추가하려고했습니다 (하지만 원하는 것은 아닙니다).
export TEST=192.168.1.1
나는 또한 내 서비스에서 이것을 시도했다.
TEST=192.168.1.1
export TEST=${TEST}
서비스가 bash 스크립트를 호출하는 방식을 변경하려고했습니다.
/bin/asdf/script &
또한 스크립트를 소싱하여 동일한 쉘에서 실행되도록 시도했습니다 ( 이것 으로부터 얻었습니다 ).
. ./bin/asdf/script
#I'm very confused why this didn't work
나는 또한 발견 이 흥미로운 보았다 어떤을하지만 정말 내 경우에서 이동하지 않았다.