![systemctl 运行永不返回的可执行文件的服务](https://linux22.com/image/158938/systemctl%20%E8%BF%90%E8%A1%8C%E6%B0%B8%E4%B8%8D%E8%BF%94%E5%9B%9E%E7%9A%84%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E7%9A%84%E6%9C%8D%E5%8A%A1.png)
我在弄清楚这些服务如何在 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 &
这是正确的实现吗?提前致谢