Linux

如何從 Systemd 服務啟動二進製文件

  • December 26, 2018

所以,我有 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 &

有人知道如何解決嗎?

先感謝您。

絕對路徑是從根目錄開始的文件的完整路徑/。看起來您需要提供在nohupCentOS 7 系統上的絕對路徑是/usr/bin/nohup.


我真的不知道您正在使用的工具,但如果可能的話,我會很想將目標設為ExecPreStart它自己的服務並使主要服務依賴於它。的文件systemd.service非常值得一讀

引用自:https://serverfault.com/questions/946568