У меня есть очень простой bash-скрипт, который должен запускать мой призрачный блог. Я использую crontab
для запуска скрипта при запуске, вот команда crontab, которую я запускаю:
@reboot /var/www/ghost/launch.sh
Скрипт имеет следующий код:
#!/bin/sh
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? != 0 ]
then
NODE_ENV=production forever start --sourceDir /var/www/ghost index.js
fi
Когда я sudo reboot
сервер и использую forever list
для поиска запущенных процессов, я вижу следующее:
data: [0] sHyo /usr/bin/nodejs index.js 1299 1314 /home/webadmin/.forever/sHyo.log 0:0:1:25.957
Когда я nano
захожу в этот файл журнала, в журнале говорится следующее:
^[[31m
ERROR:^[[39m ^[[31mCould not locate a configuration file.^[[39m
^[[37m/home/webadmin^[[39m
^[[32mPlease check your deployment for config.js or config.example.js.^[[39m
Error: Could not locate a configuration file.
at checkTemplate (/var/www/ghost/core/config-loader.js:16:36)
at Object.cb [as oncomplete] (fs.js:168:19)
error: Forever detected script was killed by signal: null
Кажется, он ищет в /home/webadmin/
, но привидение установлено в /var/www/ghost
????
Когда я запускаю точно такой же сценарий в терминале вручную после запуска сервера путем ssh
входа на сервер, сценарий работает нормально. Я запускаю: cd /var/www/ghost/
, а затем ./launch.sh
, и блог-призрак появляется и работает нормально. Журнал для этого процесса forever
говорит следующее:
^[[32mGhost is running...^[[39m
Your blog is now available on http://blog.example.com ^[[90m
Ctrl+C to shut down^[[39m
Что не так с моим скриптом или crontab, из-за чего он не может правильно запустить скрипт?