У меня есть скрипт 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
Спасибо!