Я пытаюсь запустить службу, которая требует env. переменная для установки на определенный путь. Я установил эту переменную в "/etc/profile.d/". Однако, когда я запускаю этот сервис с помощью service
команды, он не работает.
человек службы:
service runs a System V init script in as predictable environment as possible,
removing most environment variables and with current working directory set to /.
Так что кажется, что service
удаляет мои переменные. Как мне установить переменные, чтобы они не были удалены. Или это то, что я не должен делать.
Я мог бы запустить службу вручную, используя init-скрипты, или даже жестко указать путь к скрипту, но я хотел бы знать, как использовать его с service
командой.
Рекомендуется поместить параметры конфигурации в конфигурацию, в
/etc/sysconfig/<servicename>
которой они затем читаются сценарием инициализации.С уважением
Брэм
источник
/etc/sysconfig/<servicename>
файле вы можете использовать bashsource
для загрузки файлов,/etc/profile.d
чтобы имитировать среду входа в оболочку.От
man 5 init
:Кроме того, вы можете сделать,
grep env /etc/init/*
чтобы увидеть, как используетсяЭто мой вывод:
И для исчерпывающего примера посмотрите некоторые из этих сценариев. Здесь nginx.conf:
источник