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

Кто-нибудь знает, как это исправить?

Заранее благодарю.

1
задан 25 December 2018 в 13:00
1 ответ

Абсолютный путь - это полный путь к файлу, начиная с корня / . Похоже, вам нужно указать абсолютный путь к nohup , который в системе CentOS 7 равен / usr / bin / nohup .


Я действительно не знаю инструментов, которые вы используются, но, если возможно, я бы хотел сделать цель ExecPreStart своей собственной службой и сделать основную службу зависимой от нее. Документацию для systemd.service стоит прочитать .

1
ответ дан 3 December 2019 в 23:09

Теги

Похожие вопросы