Что такое $ OPTIONS в системном файле systemd?

Я просматриваю следующую строку в файле /usr/lib/systemd/system/sshd.service в поле Fedora 25:

 ExecStart=/usr/sbin/sshd -D $OPTIONS 

Я не уверен, откуда $OPTIONS . Он выглядит как переменная среды, хотя, когда я устанавливаю переменную оболочки таким образом, она игнорируется, например

 # OPTIONS='-p 9999' # systemctl start sshd 

Я прочитал часть командной строки на странице systemd.service man, которая указывает, что переменные окружения могут быть установлены через линию Environment :

 Environment="ONE=one" 'TWO=two two' 

Однако такой переменной OPTIONS нет.

Кроме того, существует строка EnvironmentFile , например:

 EnvironmentFile=-/etc/sysconfig/sshd 

Нет переменной $OPTIONS . К чему относятся $OPTIONS , и как он устанавливается?

  • Наследование переменных среды в systemd Контейнер докеров
  • Ошибка формата systemd Exec
  • Systemd регистрирует только 3 строки ошибок
  • Как проверить систему system.journal из другой системы
  • Ноутбук перезагружается, а не возобновляет работу с systemd suspend при питании от батареи (приостановка работы от сети переменного тока работает)
  • unicorn + systemd: проигрывание регистрации после обновления единорога
  • Почему «init 0» приводит к «избыточным аргументам» при установке Arch?
  • Fedora 16 странных / tmp-разрешений: mysqld не запускается
  • One Solution collect form web for “Что такое $ OPTIONS в системном файле systemd?”

    Файл блока в Debian аналогичен, содержащий:

     [Service] EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID и [Service] EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID по [Service] EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID 

    Здесь EnvironmentFile назначает SSHD_OPTS :

     # Options to pass to sshd SSHD_OPTS= 

    Скорее всего, Fedora использует подобную систему, но по какой-то причине они просто не указали явную переменную. Это не имеет значения, оно должно расширяться до пустой строки.

    Здесь упоминается, что, например, httpd.service использует OPTIONS аналогично, и устанавливает его в /etc/sysconfig/httpd . Так что по какой-то причине это скорее всего не работает.

    Вы можете проверить командную строку sshd с помощью ps чтобы узнать, к какой переменной добавлена ​​переменная, а также установить ее в файл sysconfig, чтобы проверить, работает ли она, если она установлена.


    Что касается установки переменной окружения в командной строке оболочки, AFAIU systemd не запускает службы в среде оболочки, вызывающей systemctl , но systemctl их из основного процесса systemd. Таким образом, они не наследуют настройки среды оболочки даже случайно. Переменные среды могут иметь широкий спектр эффектов, и было бы неприятно, если бы ваши службы действовали по-разному в зависимости от того, запускаются они при загрузке системы или перезапускаются из командной строки.

    Однако этот $MAINPID особенный .

    Linux и Unix - лучшая ОС в мире.