我在弄清楚这些服务如何在 CentOS 上工作时遇到了一些麻烦。现在我有以下服务文件:
[Unit]
Description=SomeDescription
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/script
[Install]
WantedBy=multi-user.target
这将启动一个脚本,该脚本调用一个永远不会返回的可执行文件:
#!/bin/bash
export LD_LIBRARY_PATH=SOMEPATH && cd SOMEOTHERPATH && ./EXECUTABLE
可执行文件永远不会返回。当我启动该服务时,它会运行一段时间,但随后由于超时而退出:
Job for selftester.service failed because a timeout was exceeded. See "systemctl status selftester.service" and "journalctl -xe" for details.
我注意到,如果我显式更改脚本以在后台运行可执行文件,它就会起作用:
#!/bin/bash
export LD_LIBRARY_PATH=SOMEPATH && cd SOMEOTHERPATH && ./EXECUTABLE &
这是正确的实现吗?提前致谢