我正试图让LibreOffice(更具体地说,soffice(作为一项服务在Ubuntu服务器上运行(20.04.3(,但我一直没能让它发挥作用。这是我第一次尝试设置自定义服务,所以它配置错误的可能性非常高。
基本上,我想让soffice在无头模式下运行,在套接字中侦听。我使用的命令是:
/usr/bin/soffice --headless --accept='socket,host=127.0.0.1,port=8100;urp;' --nofirststartwizard
据我所见,这个命令似乎在起作用。当我手动运行它时,没有任何输出,它会阻塞终端,据说是在等待传入的连接。
因此,为了将其作为服务运行,我在/etc/systemd/system
上创建了以下soffice.service
文件:
[Unit]
Description=LibreOffice service
After=syslog.target
[Service]
ExecStart=soffice "--headless --accept='socket,host=127.0.0.1,port=8100;urp;' --nofirststartwizard"
Restart=always
KillSignal=SIGQUIT
Type=simple
StandardError=syslog
User=www-data
[Install]
WantedBy=multi-user.target
启用并启动后,我在systemctl status soffice
上得到以下内容:
● soffice.service - LibreOffice service
Loaded: loaded (/etc/systemd/system/soffice.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2022-02-06 17:18:40 WET; 4s ago
Process: 24786 ExecStart=/usr/bin/soffice --headless --accept='socket,host=127.0.0.1,port=8100;urp;' --nofirststartwizard (code=exited, status=1/FAILURE)
Main PID: 24786 (code=exited, status=1/FAILURE)
我猜问题出在ExecStart
指令上,但尽管阅读了文档——这对我来说很难理解,因为我只使用linux来保持网络服务器的运行——我还是不知道出了什么问题。任何帮助都将不胜感激。
显然,是ExecStart上的双引号造成了麻烦。我会测试所有内容,一旦我确定它有效,就会编辑这个答案。