Linux (Fedora Ubuntu) env'de bir başlangıç ​​betiği hazırlamanın doğru yolu nedir?


0

LInux’da yeniyim

Ubuntu makineme başlangıç ​​betiği yapmak istiyorum. başlangıç ​​betiği ftp, http sunucumu otomatik olarak başlatacaktı.

Doğru şekilde nasıl yapabilirim?

Teşekkürler

malzeme

Yanıtlar:


2

Çoğu sunucu, eğer Ubuntu'da synaptic / apt-get yüklü ise ve Fedora'da (rpm?) Bir eşdeğeri olduğunu sanıyorum, başlangıç ​​komut dosyalarını otomatik olarak kuracak.

Genellikle bir dizinde son bulurlar /etc/init.d.

Kavramı var runlevels hangi şeyleri başlatıp durduracağını tanımlar. Bunlar genellikle /etc/rcX.d/ adresinde bulunur; burada X, 0'dan 6'ya bir tamsayıdır ve 'S' anlamına gelir; [SK] {00..99} ADI numaralandırma sırasına göre (00 - 99), S öneki başlangıç ​​ve K öldürme anlamına gelir.

Bu dosyalar /etc/rc2.d/S20powernowd örneğin, sadece gerçek dosyalara sembolik bağ /etc/init.d Bu, yansıma yoluyla, önünde S veya K ile nerede başladıklarını, betiğin başlangıç ​​veya bitiş bölümünü çağırmak için kendilerini değerlendirir.

Birçok servis diğer servislere bağlı olduğundan numaralandırma önemlidir. Dosya sistemi erken bir aşamada kurulmalıdır, birçok program ağın kurulmasına ve çalışmasına, bir günlük programı başlatmaya ihtiyaç duyar.

Görüyorsunuz, biraz karışık ve el ile yapmaktan hoşlandığınız hiçbir şey yok - çalışma amacı dışında.

Bu nedenle, dağıtımınızın kurallı kurulum sırasını kullanın ve nasıl çalıştığını öğrenmek için / etc-Scripts dosyasını inceleyin.

Bir servisi normal olarak başlatabilir veya durdurabilir ve /etc/init.d içinde aşağıdaki komutlardan birini kullanarak başka şeyler yapabilirsiniz:

sudo /etc/init.d/ftpd help
sudo /etc/init.d/ftpd start 
sudo /etc/init.d/ftpd restart 
sudo /etc/init.d/ftpd stop 
sudo /etc/init.d/ftpd status

ancak bunu yalnızca sözleşmeye bağlı olarak yapabilirsiniz - bazı servisler bu seçeneklerin tümünü kullanmayabilir, bazıları ise az ya da çok kullanır.

Ubuntu'da durum son zamanlarda değişti. Şimdi kullanmaya başlamanızı bekleyen bir başlangıç ​​programı var.

sudo restart apache2 
sudo status httpd 

Aynı sonuca ulaşmak için, ancak bugün sadece eski ve daha yaygın tarzı kullanırsam bir uyarı alırım. Şimdi diğer Linux lezzetlerinin ve Unix sistemlerinin de işe başlamadan geçip geçmediğini bilmiyorum.


Ubuntu'mun başında bazı komut dosyalarını çalıştırabilecek basit bir yöntem var mıydı?
Kit Ho

@KitHo: ubuntu'da basit görevler için /etc/rc.local dosyası vardır.
user unknown

Eski SysVInit işlemini açıklıyorsunuz. Ancak, hem Upstart (Ubuntu) hem de systemd (Fedora) bağımlılıkları kodlar ve doğrudan başlangıç ​​komut dosyalarında sipariş verir (ör. After=mysql.service ), ve systemd numaralandırılmış çalışma seviyelerine bile sahip değil. Başka bir deyişle, tek gerekli olan tek bir komut dosyası (~ 10 satır). /etc/init veya /etc/systemd/system.
grawity

Bu tamamen doğru değil. İlgilendiğim kadarıyla, systemd sysVinit ile geriye dönük olarak uyumlu. Böylece rc init betiklerini kullanabilirsiniz. Bu önerilmez ve bir birim dosyası oluşturmak, bir rc init betiği yazmaktan daha kolaydır. görmek adam 5 systemd.unit daha fazla bilgi için. systemd, çalışma seviyeleri için .target birimlerini kullanır. Ayrıca bakabilirsin İşte [İşte]
l1zard

@grawity: / etc / init'te bazı komut dosyaları olan Xubuntu 10.4 LTS kullanıyorum, ancak apache2 ve postgresql8.4 gibi bazı komutları hala /etc/init.d adresinde bulunabilir. Sistemi tanımlamaktan çekinmeyin ve kendinizi yeniden başlatın.
user unknown
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.