使用 systemd 服务执行时,不会使用 org-html-export-to-html 突出显示语法
No syntax highlighting with org-html-export-to-html when executing with systemd service
我有一个 bash 脚本,用于查找 emacs .org 文件并将其导出到给定目录中的 html。我知道 org-mode 使用 htmlize.el 为 SRC 块中的文本输出着色,这在从命令行执行时似乎工作正常,无论是作为 root 用户还是普通用户。但是,当使用 systemd 计时器自动执行此任务时,输出不再是彩色的。
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
谢谢!
我猜这是因为当 运行 以 root 用户身份与 运行 在您的用户帐户下时加载的内容不同。从给出的信息中很难确切地说出什么。但是,我的第一个建议是尝试 运行 以您的用户身份使用该服务。尝试将 User=<username>
键添加到服务的 [Service]
部分,并检查其行为是否符合您的预期。
我有一个 bash 脚本,用于查找 emacs .org 文件并将其导出到给定目录中的 html。我知道 org-mode 使用 htmlize.el 为 SRC 块中的文本输出着色,这在从命令行执行时似乎工作正常,无论是作为 root 用户还是普通用户。但是,当使用 systemd 计时器自动执行此任务时,输出不再是彩色的。
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
谢谢!
我猜这是因为当 运行 以 root 用户身份与 运行 在您的用户帐户下时加载的内容不同。从给出的信息中很难确切地说出什么。但是,我的第一个建议是尝试 运行 以您的用户身份使用该服务。尝试将 User=<username>
键添加到服务的 [Service]
部分,并检查其行为是否符合您的预期。