Итак, у меня есть файл 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
стоит прочитать .