Başlangıçta Bash Betiği? (Linux)


12

Yeniden başlatma üzerinde bir bash betiği yapmak / çalıştırmak için herhangi bir yolu var mı (örneğin Debian / Ubuntu'da olduğu gibi, evde 2 kutumun ne olduğu gibi)

Ayrıca, cron işleri yapmak için önerilen kılavuzlar var mı? Onlar için tamamen yeniyim (ama çok faydalı olacaklar)

Yanıtlar:


21

Ubuntu / Debian / Centos üzerinde @reboot komutunu çalıştırmak için bir cron işi ayarlayabilirsiniz. Bu sistem başlangıcında bir kez çalışır. Crontab'ı düzenlemek için crontab -e komutunu kullanın ve aşağıdaki örnek gibi bir satır ekleyin örn.

@reboot /path/to/some/script 

Onları ararsanız cron için birçok kaynak var. Bu sitenin birkaç iyi örneği var.


7

Belirli bir OS / dağıtımına bağlı olarak bir dizine komut dosyaları koymak için birçok * nix platformunda önyüklemede bir şey başlatmanın başka bir tipik yolu (veya bence bu iyilik yapmaya başlayabilir - alternatiflere bakın ). gibi bir şey /etc/rc2.d, /etc/rc3.d, /etc/rc/rc3.dya da benzeri (- linki aşağıya bakınız farklı dağılımlar sayı nereden geldiğini olan farklı "run düzeylerini" kullanın). Sıklıkla, bunlar /etc/init.ddaha kolay elle yürütmek için dosyalara veya dosyalara bağlanır ve çoğu * nix platformunda "start" ve / veya "stop" argümanını alır ve ayrıca "status", "restart", vb birçok linux platformunda. Bu tür sistemlerde, bunlar genellikle init,inittab. * BSD sistemlerinde, benzer bir kavramın farklı bir stili vardır ve yukarıda bağlandığı gibi bir sürü varyasyon vardır.

Yukarıdaki stilde, örn., /etc/rc2.d(Varsayılan çalışma seviyesi 2 olan bir sistem için) komut dosyaları tipik olarak ya harf Sya da Ksonra iki basamaklı bir sayı ile başlar. S ile başlayan komut dosyaları, önyükleme sırasında "başlangıç" argümanı ile seviye 2'ye sözlükbilimsel sırada (genellikle sayısal sıraya dönüştürülür) çalıştırılır. Kapatılırken, K önekine sahip komut dosyaları benzer şekilde "durdur" argümanı ile çalıştırılır.

/etc/init.d(Veya bazen /etc/rc/init.dveya diğer varyasyonlar) içindeki dosyalar S ve K önekleri veya sayısal sayılar olmadan adlandırılır. Genellikle, çeşitli /etc/rc?.d dizinlerindeki dosyalar, genellikle göreli yol öneki aracılığıyla başvurulan gerçek dosyalara bağlanır ../init.d/.

Bunları yönetmek için çeşitli sistemlerde çeşitli şeyler vardır, ayrıca işleri açıp kapatmak vb. IRIX'te (IRIX 4, en azından hafızam hizmet veriyorsa), denilen chkconfig, manipüle edilmeyen bir araçtı. ancak bunlar çalıştırılıp çalıştırılmayacaklarını görmek için komut dosyaları tarafından kontrol edilir. Ben düşünüyorum IRIX böyle bir şey var ilk OS oldu. Daha sonra, eskiden sahip olduğum bazı RedHat sürümlerinde, aynı ada sahip bir araç vardı, ancak aslında sembolik bağlantıları yöneten biraz farklı davrandı - chkconfig(8)muhtemelen aynı (veya çok benzer) versiyonun ne olduğunu düşündüğüme bakın kullandığım gibi.

Erişebileceğim bir Ubuntu 9.04 sisteminde, update-rc.dçalıştırılacak komut dosyası gibi görünüyor .

Eğer açılışta sadece bir kere çalıştırmak istediğiniz şeyler için özellikle yararlı olabilir ki, ancak aktif olarak (tarafından izlenen etmiş - Sen kullanır inittab'dan bir sistem üzerinde iseniz, aynı zamanda doğrudan oraya şeyler ekleyebilir initkadar) respawneğer onlar hiç çökme veya sonlandırma. man inittabEk bilgi için (varsa) sisteminizin çıktısına bakın . Ve / veya man init, vb. Birçok farklı tatlar vardır ve Debian veya Ubuntu'ya çok fazla aşina değilim. .

crontob'daki @reboot bölümü benim için yeni, ama aynı zamanda yararlı bir seçenek gibi görünüyor - init komut dosyalarının birçok şey için tercih edilebilir olmasını öneririm. Ama bakın man 5 crontab([bkz cron'nun bir Vixie / ISC versiyonunu varsayarak dahil çok daha Eğer cron yapılandırmasında koyabilirsiniz ne bilgi ve nasıl şeyler çalıştırmak için söylendi edilebilir ve zaman için cron geçmişi ile] @reboot).

Umarım bu yardımcı olur.

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.