Linux
如何從 Systemd 服務啟動二進製文件
所以,我有 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 &
有人知道如何解決嗎?
先感謝您。
絕對路徑是從根目錄開始的文件的完整路徑
/
。看起來您需要提供在nohup
CentOS 7 系統上的絕對路徑是/usr/bin/nohup
.我真的不知道您正在使用的工具,但如果可能的話,我會很想將目標設為
ExecPreStart
它自己的服務並使主要服務依賴於它。的文件systemd.service
非常值得一讀。