Новый CentOS 6 поставляется с Upstart, заменяющим init. Я пытаюсь преобразовать файл / etc / inittab в новый формат выскочки. Этот конкретный сервер имеет только 15 или около того записей inittab, однако другие серверы имеют> 30. В основном мы хотим, чтобы часть inittab и upstart «возрождалась». Тем не менее, я читал всю документацию для выскочки, которую смог найти (которая в значительной степени ВСЕ основана на Ubuntu и, по-видимому, на более старой версии выскочки), и ничего не добился. Я могу создать файл конфигурации (назовем его /etc/init/test.conf). Файл содержит это (примечание, анонимно)
start on runlevel [345]
stop on starting shutdown
respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username
Если я выпущу initctl reload-configuration
работа признана. Я могу начать с звонка initctl start test
и работа начнется.
Однако это не сработает при перезагрузке, только вручную. Я попытался изменить команду запуска на следующую, но все безуспешно
start on started
start on (local-filesystems and net-device-up IFACE!=lo)
start on net-device-up IFACE=eth0
и около дюжины других способов, которые я мог видеть в разных примерах. похоже, никто не запускает сценарий. (test.conf, как и все другие файлы в этой папке, принадлежат пользователю root, а 644)
Я упускаю что-то очевидное?
Я нашел очень-очень-очень полезный сценарий выскочки для людей, у которых в будущем возникнут проблемы. Поместите это в / etc / init /
# /etc/init/debug.conf
start on ( starting JOB!=debug \
or started JOB!=debug \
or stopping JOB!=debug \
or stopped JOB!=debug )
script
exec 1>>/tmp/log.file
echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:"
echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:"
env
echo
end script
Этот сценарий в основном регистрирует все запускаемые или останавливаемые задания. Я обнаружил, что CentOS 6 ничего не «излучает» об уровнях выполнения. (ни некоторые другие распространенные события, которые я пробовал. '). Очень полезно было просмотреть файл журнала, создаваемый заданием отладки в /tmp/log.file. Изменив начало моего скрипта с:
start on runlevel [345]
к
start on started sshd
Кажется, все мои рабочие места запускаются правильно. Это было головной болью, поскольку в каждом найденном мной примере использовался прежний синтаксис.
Извините за некропостинг, но мне удалось решить эту проблему, используя следующее:
start on stopped rc RUNLEVEL=[345]
«остановлено» - это не опечатка - кажется, что rc останавливается при входе на уровень выполнения.
Это то, что я сделал (CentOS 6, Upstart 0.6.5) для устранения проблем с возрождением. В другом терминале выполните
sudo initctl log-priority debug
sudo tail -F /var/log/messages