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