Я пытаюсь запустить службу на моем Mac. Эта служба должна выполнить сценарий bash.
У меня есть следующее:
watcher.service
[Unit]
Description=Watcher service - used to copy error logs
[Service]
Type=simple
ExecStart=watcher.sh
В той же директории у меня есть:
watcher.sh
# File to output to
ErrorLogFile="./error.log"
# File to read from
ExampleLogFile="./example.log"
if [ ! -e "$ErrorLogFile" ]; then # check if file exists
echo "Creating error file $ErrorLogFile"
touch $ErrorLogFile
fi
echo "copying error messages from $ExampleLogFile to $ErrorLogFile"
# copy from one file to the other
while :; do grep ERROR $ExampleLogFile > $ErrorLogFile; sleep 2; done
echo "done"
Из терминала я иду в тот же каталог и запускаю:
sudo launchctl start watcher
Ничего не происходит.
Если я запускаю из терминала следующее:
sudo watcher.sh
Он работает как положено (то есть echo
выводится на терминал, а строки копируются в файл.
Я думаю, что проблема в том, что ExecStart
в службе не выполняет сценарий watcher.sh
.
Вопрос
Как я могу получитьслужба для выполнения сценария bash?