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

Как протестировать /etc/rc.d/rc.local, чтобы убедиться, что команда запускается успешно при загрузке?

я использую тиранменеджер управлять несколькими экземплярами Токийский тиран. Работает нормально.

Я хочу, чтобы он запускался при загрузке, поэтому я добавляю следующую команду в /etc/rc.local:

/usr/local/bin/tyrantmanager start --home=/data/tyrant/

(это будет нормально при выполнении из командной строки)

На прошлой неделе мой сервер завис, и мне нужно выполнить его полную перезагрузку. После загрузки войдите в систему и проверьте, вижу ли я нет Экземпляры Tokyo Tyrant работают.

Есть ли способ протестировать, чтобы убедиться, что он запустится успешно при следующей загрузке? За исключением перенаправления вывода и ошибки в файл журнала с >> /var/log/tyrantmanager.log 2>&1, что еще я могу сделать для «отладки», если он не запускается.

PS: Я могу написать для него сценарий инициализации, но все же хочу изучить основную причину этого случая.


РЕДАКТИРОВАТЬ: Я тестировал на сервере разработки и получил тот же результат. Ниже представлен файл журнала:

15:02:17  INFO : Starting test : ttserver -host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc
/usr/local/lib/ruby/gems/1.8/gems/logging-1.5.2/lib/logging/logger.rb:429: command not found:  ttserver -host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc 

Я не знаком с Ruby, поэтому не знаю, почему он "команда не найдена" ошибка от logger.rb. Может быть, я задам вопрос по stackoverflow.

Независимо от того, какой дистрибутив я использую сейчас, я усвоил урок: если я хочу быть уверенным, что что-то срабатывает при загрузке, Я перезагружу сервер и посмотрю, что будет. Просто запланируйте период обслуживания для вашего сервера (если необходимо) и выполните несколько тестовых перезапусков в это время. Посмотрите, работает ли это.

Раньше я был уверен, что «это начнется при следующей перезагрузке», но тогда этого не произойдет.

[Быстрый ответ]


Бежать rc.local вручную перейдите в rc.local дорожка (cd /etc/) затем сделайте следующее:

$ sudo ./rc.local

Если у вас есть ошибка при выполнении, сделайте это перед этим:

$ sudo chmod +x rc.local

Похоже, либо:

  • ttserver отсутствует в пути при запуске /etc/rc.local. Убедитесь, что среда настроена правильно в /etc/rc.local. Как вы говорите, работает из командной строки.
  • сценарий ruby ​​вызывает всю командную строку как одну команду без каких-либо параметров.

Подозреваю первое.