Нет подсветки синтаксиса с помощью org-html-export-to-html при выполнении с помощью службы systemd.

У меня есть скрипт bash, который находит и экспортирует файлы emacs .org в html в заданном каталоге. Я понимаю, что org-mode использует htmlize.el для окрашивания вывода текста в блоках SRC, который, похоже, отлично работает при выполнении из командной строки как от имени пользователя root, так и от обычного пользователя. Однако при использовании системных таймеров для автоматизации этой задачи вывод больше не окрашивается.

for i in `find /home/user/dir -name '*.org'`
do
    emacs $i --batch -l /home/user/.emacs org-html-export-to-html --kill
done

Раньше у меня были проблемы с подсветкой синтаксиса при непосредственном выполнении скрипта, что было решено, когда был добавлен -l /home/user/.emacs, как показано в отрывке выше (publishNotes.sh).

Все, кроме подсветки синтаксиса, похоже, работает нормально, что указывает на то, что и служба systemd, и сам исполняемый скрипт работают по таймеру.

Сервис:

[Unit]
Description=Update website

[Service]
Type=simple
ExecStart=/home/user/bin/publishNotes.sh

Таймер:

[Unit]
Description=Run every hour

[Timer]
OnCalendar=hourly
Unit=publishNotes.service

[Install]
WantedBy=multi-user.target

Спасибо!


person netrocious    schedule 29.06.2015    source источник


Ответы (1)


Я предполагаю, что это связано с тем, что что-то загружается иначе при запуске от имени пользователя root, чем при запуске под вашей учетной записью пользователя. Что именно трудно сказать по предоставленной информации. Тем не менее, мое первое предложение состояло бы в том, чтобы попробовать запустить службу как ваш пользователь. Попробуйте добавить ключ User=<username> в раздел [Service] службы и проверьте, ведет ли он себя так, как вы ожидаете.

person Brian Campbell    schedule 29.06.2015
comment
Добавлен User=<username> к [Service] в файле службы. Это, кажется, решает мою насущную проблему, хотя я все еще не понимаю, почему вывод будет другим, поскольку все работает нормально, когда вы входите в систему как root и выполняете скрипт оттуда. Спасибо - person netrocious; 29.06.2015