Если al еще перестал работать, можно всегда компилировать из источника. Я сделал это прежде на CentOS, и это на самом деле работает вполне гладко.
Несколько опций здесь. Просто пропустите к последнему абзацу, если Вы хотите одну рекомендацию вместо того, чтобы читать о других также!
Просто перезапуск на перезагрузке легок: добавьте его к /etc/rc.local
который Debian основывал дистрибутивы (и многие другие) бежит за всем в других сценариях запуска по умолчанию. Если god
не заскакивает в сам фон, Вам, возможно, понадобилось бы к вниманию и к ned команды как так:
god -c config &
Вышеупомянутое не перезапустит процесс, когда это будет уничтожено все же. Вы могли записать сценарию бесконечные циклы, но это грязно и вызовет проблемы, когда Вы действительно хотите уничтоженный.
Вы могли также создать свой собственный init сценарий, смоделированный на тех, которые в /etc/init.d
(и связанный в /etc/rc.*
'который даст Вам больше полного решения, поскольку у Вас будет средство для останавливаний/начинания сервиса, когда Вы должны будете, хотя это автоматически не запустит сервис для Вас без некоторых дополнительных сценариев с Вашей стороны.
Вы могли добавить его к Вашему /etc/inittab
, затем init
справится с процессом для Вас, запуская его на начальной загрузке и перезапуская его, если это умрет. Это даже прекратит перезапускать его, если это будет умирать к часто за короткий промежуток времени. Это все еще не прекрасно все же.
Я думаю обычно рекомендуемый подход для того, что Вы описали, daemontools
(http://en.wikipedia.org/wiki/Daemontools), который также поддерживает перезапуск сервиса, если он умирает. Это - немного больше работы здесь, чем использование записи в /etc/initab
но Вы закончите с намного более чистым конечным продуктом, который должен сделать все, что Вы спросили в своем вопросе. daemontools
должен быть найден в репозиториях примерно любого дистрибутива Linux.
Если Вы для обеспечения процесса всегда работаете затем inittab, разумный способ сделать это, поскольку он перезапустит процесс, если он умрет. Однако я не сделал бы этого этот путь, как будто это перестало работать, я обнаружил бы это как можно скорее, когда мой код улучшился бы, и я, менее вероятно, сделаю машину нестабильной.
Если у Вас есть корневой доступ, затем создают init сценарий в/etc/init.d и затем используют обновление-rc.d для создания корректных символьных ссылок в каталогах уровня выполнения. Сценарий в качестве примера был бы похож
#!/bin/bash
### BEGIN INIT INFO
# Provides: god
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Runs the ruby god meta server.
# Description: Runs the ruby god meta server.
### END INIT INFO
start_daemon () {
nohup start-stop-daemon --start --quiet -m --pidfile /var/run/god.pid \
--exec god -- -c config
RETVAL=$?
}
stop_daemon () {
start-stop-daemon --stop --quiet --oknodo -m --pidfile /var/run/god.pid
RETVAL=$?
}
case "$1" in
start)
start_daemon
;;
stop)
stop_daemon
;;
restart | reload | force-reload )
stop_daemon
start_daemon
;;
esac
Если Вы - просто обычный пользователь затем, Вы могли бы использовать крон для выполнения процессов во время начальной загрузки specifing время начала как @reboot
@reboot god -c config
Необходимо записать init.d сценарий для него, чтобы запустить и остановить бога. Можно использовать любой сценарий под/etc/init.d как пример. Назовите свой новый сценарий/etc/init.d/god. Можно затем работать
# update-rc.d god defaults
и это должно удостовериться, что запускается и останавливается при начальной загрузке сервера и завершении работы. Можно найти, что уже существует init.d сценарий для бога, доступного в Интернете. У меня был бы быстрый поиск перед присаживанием для записи того.
Гарантировать богу перезапускает его на начальной загрузке, Вы захотите добавить его к init сценариям.. Чтобы сделать это, запишите сценарий, который примет, по крайней мере, запускаются в качестве параметра (для следования стандартам, необходимо было бы сделать несколько больше, чем тот), и засуньте его в/etc/init.d/. Затем добавьте символьную ссылку по имени S99 к/etc/rc [безотносительно уровней выполнения, которые Вы хотите, чтобы сценарий запустил в].
Идеально, для лучше следования стандартам скопируйте/etc/init.d/skeleton в где-то в другом месте в/etc/init.d/и отредактируйте его для установки.