CentOS 6 ve sonraki başlangıç


18

Yeni CentOS 6, init'in yerine Upstart ile birlikte geliyor. Bir / etc / inittab dosyasını yeni uptart biçimine dönüştürmeye çalışıyorum. Bu belirli sunucuda yalnızca 15 kadar inittab girişi vardır, ancak diğer sunucular> 30'a sahiptir. Biz esas olarak inittab ve 'start' ın 'respawn' bölümünü istiyoruz. Ancak, bulabildiğim tüm uptart belgelerini okuyordum (ki Ubuntu'ya göre neredeyse TÜM ve görünüşe göre uptart'ın eski bir versiyonuna dayanıyor) ve hiçbir yere ulaşmıyorum. Bir yapılandırma dosyası oluşturabilirim (bunu /etc/init/test.conf olarak adlandırabilirim). Dosyada bu var (not, anonimleştirilmiş)

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

Bir sorun çıkarsam initctl reload-configurationiş tanınır. Arayarak başlayabilirim initctl start testve iş başlayacaktır.

Ancak, bu yeniden başlatma üzerinde çalışmaz, sadece manuel olarak. Başlat komutunu aşağıdaki şekilde değiştirmeyi denedim, hepsi şanssız

start on started

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

start on net-device-up IFACE=eth0 

ve farklı örneklerde bahsettiğim yaklaşık bir düzine yol. hiçbiri senaryoyu başlatmış gibi görünmüyor. (test.conf, bu klasördeki diğer tüm dosyalar gibi root'a ve 644'e aittir)

Göze batan belirgin bir şey mi kaçırıyorum?

Yanıtlar:


32

Gelecekte sorun yaşayan insanlar için çok, çok, çok yararlı bir başlangıç ​​senaryosu buldum. Bunu / etc / init / dizinine koyun

# /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

Bu komut dosyası temel olarak başlatılan veya durdurulan tüm işleri günlüğe kaydeder. CentOS 6'nın çalışma seviyeleri hakkında hiçbir şey 'yaymadığını' buldum. (ne de denediğim diğer yaygın olaylardan bazıları. '). /Tmp/log.file içinde hata ayıklama işinin oluşturduğu günlük dosyasına bakmak çok yardımcı oldu. Senaryomun başlangıcını şu şekilde değiştirerek:

start on runlevel [345]

için

start on started sshd

tüm işlerim düzgün başlıyor gibi görünüyor. Bu arkadaki bir acıydı, çünkü bulduğum her örnek eski sözdizimini kullandı.


Eğer bunu bir kereden fazla oylayabilirsem, yapardım.
Peter Mounce

15

Necroposting için özür dilerim, ancak aşağıdakileri kullanarak bu sorunu çözmeyi başardım:

start on stopped rc RUNLEVEL=[345]

"durdu" bir yazım hatası değil - rc bir çalışma seviyesine girdikten sonra duruyor gibi görünüyor.


2
Bahşiş için teşekkürler! Necroposting, ne zaman yararlı harika!
Brian

5

Yeniden doğma sorunlarını ayıklamak için yaptığım bu (CentOS 6, Upstart 0.6.5). Farklı bir terminalde,

sudo initctl log-priority debug 
sudo tail -F /var/log/messages
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.