CentOS 6 і нові версії


18

Новий CentOS 6 поставляється з Upstart, замінюючи init. Я намагаюся конвертувати файл / etc / inittab у новий формат на початку. Цей конкретний сервер містить лише 15 записів inittab, однак інші сервери мають більше 30. Ми, головним чином, хочемо "відновити" частину inittab та upstart. Однак я читав всю документацію, яку я можу знайти, (яка майже ВСЕ заснована на Ubuntu, і, мабуть, на більш старій версії upstart) і нікуди не потрапляю. Я можу створити конфігураційний файл (дозволяє викликати його /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 на наступне, і все не пощастило

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 

і про десяток інших способів, які я міг бачити згаданих у різних прикладах. схоже, ніхто не запускає сценарій. (test.conf, як і всі інші файли в цій папці, належать root та 644)

Я пропускаю щось яскраво очевидне?

Відповіді:


32

Я знайшов дуже, дуже, дуже корисний сценарій для початківців для людей, які мають проблеми в майбутньому. Помістіть це в / 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

всі мої роботи, здається, запускаються правильно. Це був біль ззаду, оскільки кожен знайдений нами приклад використовував колишній синтаксис.


Якби я міг би проголосувати за це не один раз, я мав би це.
Пітер Мунс

15

Вибачте за некропостинг, але мені вдалося вирішити цю проблему, використовуючи наступне:

start on stopped rc RUNLEVEL=[345]

"стоп" - це не друкарська помилка - здається, що rc зупиняється після введення рівня пробігу.


2
Дякую за пораду! Некропостинг - це чудово, коли це корисно!
Брайан

5

Це те, що я зробив (CentOS 6, Upstart 0.6.5), щоб налагоджувати проблеми, що відновились. В іншому терміналі зробіть

sudo initctl log-priority debug 
sudo tail -F /var/log/messages
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.