因此,我有一个 start.sh 文件来启动 imagecache 服务。并且我有一个可执行二进制文件“imgproxy”,我需要启动它并向其传递两个参数,就像文本文件一样。start.sh 文件主体:
export IMGPROXY_LOCAL_FILESYSTEM_ROOT="/home/filestorage/media"
export IMGPROXY_BIND=":9608"
./home/tools/imgproxy/imgproxy -keypath ./home/tools/imgproxy/key.txt -saltpath
./home/tools/imgproxy/salt.txt
ExecStartPre=nohup /bin/bash /home/tools/imgproxy/start.sh </dev/null >/dev/null 2>&1 &
我使用命令“ExecStartPre”启动它,因为我有主服务和二进制文件及其依赖关系。我必须在启动主服务之前启动这个二进制文件。
因此,当我启动服务时出现以下错误:
systemd[1]: [/etc/systemd/system/imagecache.service:11] Executable path is not absolute, ignoring: nohup bash /home/tools...ull 2>&1 &
有人知道如何修复它吗?
先感谢您。
答案1
绝对路径是从根目录开始的文件的完整路径/
。看起来您需要提供nohup
CentOS 7 系统上的绝对路径/usr/bin/nohup
。
我真的不知道你使用的工具,但如果可能的话,我会尝试将ExecPreStart
其作为自己的服务的目标,并让主服务依赖于它。systemd.service
非常值得一读。