O arquivo de unidade no Debian é semelhante, contendo:
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
Aqui, o EnvironmentFile atribui SSHD_OPTS
:
# Options to pass to sshd
SSHD_OPTS=
É provável que o Fedora use um sistema similar, mas por alguma razão eles simplesmente não definiram explicitamente a variável. Isso não importa, deve se expandir para uma string vazia.
Há uma menção aqui que eg httpd.service
usa OPTIONS
da mesma forma e define em /etc/sysconfig/httpd
. Então, é provável que não seja definido por algum motivo.
Você pode verificar a linha de comando de sshd
com ps
para ver para o que a variável é expandida, e também defini-la como algo no arquivo sysconfig para verificar se ela funciona se estiver lá.
Quanto à configuração da variável de ambiente na linha de comando do shell, o systemd AFAIU não executa os serviços no ambiente do shell chamando systemctl
, mas os separa do processo main systemd. Dessa forma, eles não herdam as configurações do ambiente do shell, mesmo acidentalmente. As variáveis de ambiente podem ter uma ampla gama de efeitos e seria chato ter seus serviços agindo de forma diferente, dependendo se eles foram iniciados na inicialização do sistema ou reiniciados a partir da linha de comando.
Esse $MAINPID
, no entanto, é especial .