Ошибка при запуске службы i8kmon при настройке пользовательских настроек

Первый пост, вы все. Пожалуйста, будьте нежны;)

Я решил, что независимо от заданных по умолчанию температурных порогов, при которых i8kmon устанавливает скорость вращения вентилятора, будет недостаточно. Казалось бы, я включаю вентилятор под нагрузкой, а затем никогда не отключаюсь (возможно, потому, что нижняя пороговая температура слишком низкая?).

Поэтому я решил создать пользовательский файл конфигурации (как описано в руководствах по i8kmon) в /etc/default/i8kmon. Содержимое файла было именно таким:

set config(0) {{0 0}  "-"1  60  "-"1  65}
set config(1) {{1 0}  50  70  55  75}
set config(2) {{1 1}  60  80  65  85}
set config(3) {{2 2}  70 128  75 128}

Это, однако, кажется, не нравится i8kmon, так как он больше не работает после размещения файла конфигурации. Вот вывод systemctl status i8kmon.service:

systemctl status i8kmon.service 
● i8kmon.service - LSB: Dell fan/cpu-temperature monitor
   Loaded: loaded (/etc/init.d/i8kmon; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2016-01-04 20:33:57 PST; 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3766 ExecStop=/etc/init.d/i8kmon stop (code=exited, status=2)
  Process: 3770 ExecStart=/etc/init.d/i8kmon start (code=exited, status=2)
    Tasks: 2 (limit: 512)
   CGroup: /system.slice/i8kmon.service
           └─3545 tclsh /usr/bin/i8kmon --daemon --nouserconfig --auto

Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Control process exited, code=exited status=2
Jan 04 20:33:57 notebook systemd[1]: Stopped LSB: Dell fan/cpu-temperature monitor.
Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Unit entered failed state.
Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Failed with result 'exit-code'.
Jan 04 20:33:57 notebook systemd[1]: Starting LSB: Dell fan/cpu-temperature monitor...
Jan 04 20:33:57 notebook i8kmon[3770]: /etc/init.d/i8kmon: 1: /etc/default/i8kmon: Syntax error: "(" unexpected
Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Control process exited, code=exited status=2
Jan 04 20:33:57 notebook systemd[1]: Failed to start LSB: Dell fan/cpu-temperature monitor.
Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Unit entered failed state.
Jan 04 20:33:57 notebook systemd[1]: i8kmon.service: Failed with result 'exit-code'.

Но вот строка, которая меня особенно интересует:

Jan 04 20:33:57 notebook i8kmon[3770]: /etc/init.d/i8kmon: 1: /etc/default/i8kmon: Syntax error: "(" unexpected

Так. Я довольно уверен, что не допустил никаких синтаксических ошибок в файле конфигурации. (Обратите внимание, что это было скопировано вставлено дословно в файл конфигурации).

Также было бы интересно отметить это; что я успешно получил эту работу в Fedora 23 (хотя эта работа носила более ручной характер). Основные отличия (которые я могу вспомнить) состоят в том, что 1) файл помещается в /etc/i8kmon.conf, а не в /etc/default/i8kmon (обратите внимание на отсутствие.conf здесь, в Ubuntu по некоторым причинам), и 2), man-страница fedora для i8kmon не требует странных кавычек вокруг тире.

Есть мысли по этому поводу?

1 ответ

Вы должны поместить файл конфигурации в /etc/i8kmon.conf вместо /etc/default/i8kmon, Утилита i8kmon - это скрипт TK, в котором жестко задан путь к файлу конфигурации. Смотрите вывод grep sysconfig /usr/bin/i8kmon,

Согласно приведенным ниже страницам, /etc/default Файлы конфигурации работают с несовместимой логикой загрузки файла конфигурации в среду исполняющей оболочки и, следовательно, предполагая, что синтаксис файла конфигурации является синтаксисом оболочки. Страница man i8kmon содержит ошибку, потому что она не упоминает другой (оригинальный) канал конфигурации. Какова цель / etc / default? https://superuser.com/questions/46139/what-does-source-do

Другие вопросы по тегам