Юнит-файл в Debian аналогичен, содержит:
[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
, а передает их главному процессу systemd. Таким образом, они не наследуют настройки окружения оболочки даже случайно. Переменные окружения могут иметь широкий спектр эффектов, и было бы неприятно, если бы ваши службы действовали по-разному в зависимости от того, запускаются ли они при загрузке системы или перезапускаются из командной строки.
Этот $MAINPID
, однако, особенный.
Если вы можете передавать файлы в систему и из нее, сделайте резервную копию текущего crontab:
$ crontab -l >crontab.txt
Если вы не можете выполнять перенаправления, просто выполните crontab -l
и скопируйте и вставьте crontab (убедившись, что все идентично).
Затем, с текстовым файлом crontab в не очень заблокированной системе, обновите его в редакторе.
Перенесите файл обратно и выполните
$ crontab crontab.txt
Это должно быть правильно протестировано на идентичном сервере разработки, включая правильность спецификаций задания, перед внедрением на рабочем сервере. Обратите внимание, что загрузка crontab в crontab
таким образом заменяет текущий crontab.
Я не беру на себя никакой ответственности.
Судя по сообщению об использовании, вы используете lshell . Это не оболочка в стиле Bourne -, такая как bash, ksh, zsh, BusyBox и другие. Это даже не ограниченная оболочка, как rksh или rbash. В нем нет переменных, перенаправлений или каких-либо других функций, кроме выполнения фиксированного набора команд с некоторыми аргументами.
Если вы можете запустить vi, это означает, что либо в lshell есть ошибка, либо он был неправильно сконфигурирован. Он предназначен для предотвращения запуска произвольных команд.
Поскольку вы можете запустить php
, вы можете обойти это. Но, очевидно, администраторы не собираются этого делать.
Кронтаб обычно короткий, поэтому, если вы хотите отредактировать его в другом редакторе, откройте достаточно большой терминал, скопируйте его целиком на локальный компьютер через буфер обмена графического интерфейса, отредактируйте и скопируйте в другом направлении. В nano убедитесь, что автоматический перенос строк отключен(Alt + L для переключения ), а также (, но это не имеет значения для crontab )автоматический отступ(Alt + I).