sh sys-snap.sh &
Nedir sh? Nedir sys-snap.sh? Neden &satırın sonuna koyalım ? Herhangi biri sözdizimini açıklayabilir mi?
&Senaryo olmadan ben Ctrl+ 'a basana kadar komut istemine geri dönmeyecek C. &Enter ile basabilir ve çalışır.
sh sys-snap.sh &
Nedir sh? Nedir sys-snap.sh? Neden &satırın sonuna koyalım ? Herhangi biri sözdizimini açıklayabilir mi?
&Senaryo olmadan ben Ctrl+ 'a basana kadar komut istemine geri dönmeyecek C. &Enter ile basabilir ve çalışır.
Yanıtlar:
shvarsayılan Bourne uyumlu kabuk (genellikle vurmayı veya çizgi)
sys-snap.shshyürüten komutları içeren bir kabuk betiğidir . İçeriğini yayınlamadığınızda, yalnızca adından, ne yaptığından tahmin edebilirim. Komut dosyası başlarsa ben vb tüm güncel süreçlerle bir günlük dosyası yapmak aynı dosya adıyla CPanel ile ilgili bir senaryo, mevcut bellek kullanımı, veritabanı durumunu bulabilirsiniz shebang hattı ( #!/bin/shveya benzeri), bunu yürütülebilir yapabilir ile chmod +x sys-snap.shve ./sys-snap.shgeçerli dizinde ise doğrudan kullanarak başlatın .
İle &işlem arka planda başlar, bu nedenle kabuk kullanmaya devam edebilir ve komut bitene kadar beklemek zorunda değilsiniz. Unutursanız, geçerli çalışma işlemini ile durdurabilir Ctrl-Zve arka planda bg(veya ile ön planda fg) devam edebilirsiniz. Daha fazla bilgi için iş kontrolüne bakın
shgenellikle sadece bashveya dashLinux tabanlı sistemlerde (veya son işletim sistemi / X). BSD'lerde genellikle Ash'in başka bir çeşididir (tire NetBSD sh, kendisi de Almquist Kabuğuna dayanır) veya bir pdksh türevi. Ticari Unices'de genellikle ksh88'dir.
&ve bu nedenle arka planda, sadece yeni bir kabuk istemi alırsınız.
&&ve tekli işaretli olanlardan farklı &mı?
Bu job controlunix altında bilinir . &Arka planda komutu koymak için kabuk bildirir. Bu, sys-snap.shkomutu çalıştırmaya devam ettiği, ancak paralel komutlar yapmaya devam edebilmeniz için sizi kabuğunuza döndürdüğü anlamına gelir .
Halen jobskomutla çalışan işlerin listesini görebilirsiniz . Komutu kullanarak komuta dönebilirsiniz ('ön plana getirin) fg. Hangi geri hiçbir istemle durumuna komutu çeker ve çıkartmak zorundadır Ctrl- Ciçin öldürmek süreci. Ancak , bu işlemi askıya alabilir (duraklatabilir) verebilir Ctrl- Z. Bu sys-snap.shsizi duraklatır ve isteğinize döndürür. Daha sonra o (bunu çıkarılmış sanki arka plan yapabilirsiniz ile& birlikte) bgkomutu ve edecektir özgeçmişinizi ondan çalışan devlet duraklatılmış Ctrl- Zonu koymuştu.
Bir seferde birden fazla işe sahip olabileceğinizi unutmayın (ile gösterildiği gibi jobs):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Onları iş numaralarını kullanarak arka plan ve ön plana çıkarabilirsiniz, %1olacaktır sys-snap.shve %2olacaktır another-script.sh. Bağımsız değişkenler kullanırsanız fgveya kullanmazsanız , yukarıdaki çıktıda bgişaretli olan işe komut uygular.+jobs
fg %1
sys-snap.sharka planda bırakırken, ön plana geri koyacağız another-script.sh.
Sen verebilir Ctrl- Conları ön plana gerek kalmadan işlerini çalışan diziyi killkomutunun, kill %1eşdeğer gönderecek Ctrl- Ciçin sys-snap.sh.
Eğer bash shell kullanıyorsanız, man bashkomut 'JOB CONTROL' başlıklı bölümün altında daha ayrıntılı olarak ayrıntılı bir bölüme sahiptir.
İsmine gelince sys-snap.sh, unix dosya isimleri altında keyfidir (dinamik yükleyici dosyaları gibi birkaç istisna dışında). Onları, onları bir kabuk olarak çalışmasını sağlamak için belirli dosya uzantıları var gibi diğer komutları çağırmak için bir gereksinim yoktur perlya phpGenellikle bu durumda, o netlik sağlamak için kullanılır vb, öyle .shBourne Shell'i kullanarak Shell Senaryo /bin/sh.
İşlevsel kısmı sys-snap.sh(içeriğine lesskomut gibi bir şey girdiğinde ) Shebang . İlk satırda muhtemelen birini bulacaksınız:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
veya benzeri. Temel terimlerle, #!(gibi /bin/sh) komutundan sonra bir komut çalıştırılır ve komut dosyası dosyasının geri kalanının içeriği bir seferde kendisine bir satır beslenir. chmodBir komut olarak çalıştırabilmeniz için dosyanın çalıştırılabilir olarak da ayarlanması gerektiğini unutmayın . Eğer izinler ayarlanmadıysa, shebangbunun bir etkisi olmaz, çünkü hatayı alırsınız:
bash: sys-snap.sh: command not found
veya açık bir yolla çalıştırdıysanız ./sys-snap.sh( .geçerli çalışma dizini anlamına gelir):
bash: ./sys-snap.sh: Permission denied
Diğer bir alternatif, izinleri çalıştırmadan bırakmak ve açıkça / bin / sh'den çalıştırmasını istemektir:
/bin/sh sys-snap.sh &
nohup, &bir süreci başlatmak için kullanılan ve süreci öldürmeden başlatılan kabuğu öldürebildiği için ne yaptığını da eklemektir .
jobsilk komutu varsa her zaman boş dönecek doğru mu?
&Komutun sonunda yalnızca komutun / komut dosyanızın arka planda çalıştığını ancak yazarken kullanılacağını belirten stdin(ancak stdoutveya değil stderr) stdoutayrıldığını Ctrl + c, çıktıyı durduramayacak, ancak yapabileceğinizin olabileceğini unutmayın. komutları girmek için Bunun nedeni, arka plan işleminin yazdığıdır, stdoutancak ön planda çalışmadığı için durduramazsınız. Daha fazla bilgi burada .
shbir kabuktur. Hangi kabuk tam olarak sisteme bağlıdır. bashStandart kabuğu olarak kullanılan bir sistem için örnek :
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 13 16:12 /bin/sh -> bash
$ sh --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
sys-snap.shBir tür sh sys-snap.shkabuk betiği olacak , bu yüzden kabuk betiğini çalıştıracak.
&Kabuk işleminin arka planda çalışmasına neden olur. Olmadan &komut sona erene kadar ön planda kalacak. Komut dosyası her iki şekilde de işe yarayacaktır, bu sadece başka komutları uygulamadan önce komut dosyasının bitmesini beklememektir.
Sunucunuz hostgator'da mı?
Betik sys-snap.sh, hostgator ekibi tarafından sistemin tüm günlük dosyalarını ve verilerini toplamak için yazılan özel bir betiktir, bu yüzden çıktısını sistem bilgisini izlemek ve toplamak için kullanırlar.
&&ve tekli işaretli olanlardan farklı&mı?