Я хочу запустить сервер единорога на запуске сервера Ubuntu. Я изменил файл /etc/rc.local
иметь это:
echo 'test' >> sudo /tmp/unicorn
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
RAILS_ENV=staging
/etc/init.d/unicorn_lescollectionneurs start >> sudo /tmp/unicorn
exit 0
Когда я выполняю файл, он работает, моя начальная загрузка сервера, но нет ничего в /tmp/unicorn
. Когда я перезагружаю сервер, единорог не работает, но ссылка symoblic создается. Я не знаю, как иметь трассировку.
Что я могу сделать?
Я внес некоторые изменения. Это - новый сценарий:
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
export RAILS_ENV=staging
sudo -H -u deployer bash -c '/etc/init.d/unicorn_lescollectionneurs start' >> /tmp/unicorn
exit 0
Я хочу запустить скрипт как "устройство развертывания", потому что я использую rbenv:
echo "starting" >> /tmp/unicorn_log
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD" >> /tmp/unicorn_log
echo "end starting" >> /tmp/unicorn_log
В файле /tmp/unicorn_log/
это показывает только "запуск". Действительно ли возможно иметь больше журналов?
Команда
echo 'test' >> sudo /tmp/unicorn
совпадает с
echo 'test' /tmp/unicorn >> sudo
таким образом, это добавляет строку
test /tmp/unicorn
в файл sudo
в текущей папке.
Если Вы хотите добавить test
в файл /tmp/unicorn
использование полномочий пользователя root необходимо использовать
echo 'test' | sudo tee -a /tmp/unicorn
вместо этого. Как /etc/rc.local
выполняется корнем так или иначе, Вам не нужно sudo
во всех кроме просто
echo 'test' >> /tmp/unicorn
Аналогично команда
/etc/init.d/unicorn_lescollectionneurs start >> sudo /tmp/unicorn
совпадает с
/etc/init.d/unicorn_lescollectionneurs start /tmp/unicorn >> sudo
В зависимости от как /etc/init.d/unicorn_lescollectionneurs
записан это может или не может произвести ошибку (скорее всего, она не делает и /tmp/unicorn
просто проигнорирован).
Строка
RAILS_ENV=staging
просто устанавливает переменную RAILS_ENV
но не экспорт его. Таким образом, это не доступно для /etc/init.d/unicorn_lescollectionneurs
и его дочерние процессы. Использовать
export RAILS_ENV=staging
вместо этого.