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

CentOS 6 и выскочка

Новый 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