我想配置arara
在编译后启动我的 PDF 阅读器。我可以使用以下自定义规则来实现这一点:
!config
identifier: evince
name: evince
commands:
- name: Open in Evince
command: >
@{
name = 'build/'+getBasename(reference.getName()) + '.pdf';
return getCommand(['evince', name])
}
arguments: []
但是,当使用此规则时,arara
它会一直挂起,直到我再次关闭 PDF 阅读器:
(LaTeXmk) Tool LaTeXmk .................................. SUCCESS
(evince) Open in Evince .................................
附加&
到命令只会evince
尝试打开文件&
。我尝试了各种组合nohup
,直接从此规则,或通过间接从 bash 脚本调用,但没有任何变化。除非我停止 PDF 阅读器setsid
,否则 Arara 拒绝继续。coproc
disown
evince
关于如何在后台进程生成 PDF 阅读器后让 arara 继续运行,有什么建议吗?
答案1
最后,我通过调用以下 bash 脚本(evince
通过调用该脚本替换上面的脚本)解决了这个问题:
#!/bin/bash
evince $1 > /dev/null &
exit 0
有趣的是,将输出重定向到/dev/null
和返回exit 0
是必需的。我猜这是 arara 中的一个错误,但我将尝试在另一台机器上重现它,然后再报告它。