Назад | Перейти на главную страницу

Как запустить двоичный файл из службы 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 стоит прочитать.