Linux komutlarını arka planda çalıştırmanın 7 pratik yolu
Her Linux kullanıcısı önemli Linux komutlarının değerini bilir . Bir Linux sanal sunucusu satın alarak Linux’un uçsuz bucaksız dünyasına ilk kez girdiğinizde ve terminalde Linux komutlarıyla çalıştığınızda, Linux çekirdeğinin soyut değerinin farkına varırsınız.
Linux komutlarını arka planda çalıştırmak sistemi hızlandırır ve sistem performansını bozmadan aynı anda birden fazla komutu çalıştırabilirsiniz. Linux’un arka planında komut çalıştırmanın farklı yolları vardır, en kolay yollardan biri komutun sonuna & eklemektir. Bu komutun nasıl kullanılacağını ve diğer yöntemleri yazının metninde görebilirsiniz.
Ancak bir sorunla karşılaşabilirsiniz. Bir komutu yürütmek uzun zaman alır ve başka bir komutu çalıştırana kadar beklemeniz gerekir. Bir komutun yürütülmesinin uzun sürmesi, yeni bir kabuk başlatmanıza veya uzun süre beklemenize neden olur.
Peki çözüm nedir? Komutlar Linux arka planında çalıştırılabilir. Diğer komutlar gibi bu da terminal aracılığıyla mümkündür. Neyse ki, birkaç basit hile ile Linux komutları arka planda çalıştırılabilir.
Linux komutlarını arka planda çalıştırmanın 7 pratik yolu
Linux’ta terminal kullanmak, bir komutun sürekli çalıştığı anlamına gelir ve genellikle yürütme işlemini tamamlamadan veya terminalden çıkmadan aynı anda başka bir komutu yürütmek mümkün değildir.
Diğer sınırlamalar gibi, bu sorun için de her Linux kullanıcısının aynı anda birden fazla işlemi çalıştırmasına olanak tanıyan çözümler mevcuttur.
Bu bölümde önemli Linux komutlarını arka planda çalıştırmanın yollarını araştırmak istiyoruz. Aşağıdaki komutlar en çok kullanılan Linux komutları arasındadır . Programı Linux’un arka planında çalıştırmanın 7 yolu şunları içerir:
1. Komutun sonuna & veya Ve işareti ekleyin
Linux arka planında komut çalıştırmanın en kolay yolu, komutun sonuna ve işareti veya & karakterini eklemektir. Örneğin, firefox’u terminalde açarsanız, firefox’tan çıkana kadar kabuğu kullanamazsınız.
Ancak komutunuzun sonuna & eklerseniz, komut bash’a komutu Linux arka planında çalıştırmasını söyler ve terminali kullanabilirsiniz.
firefox &
Gördüğünüz gibi terminalde yeni bir satır oluşturuldu, bu da firefox fonksiyonunun terminalden ayrılarak bağımsız olarak çalıştığı anlamına geliyor.
2. Programı Linux arka planında çalıştırmak için bg’yi kullanma
Bazen bir Linux komutunu çalıştırdıktan sonra tamamlanmasının uzun zaman aldığını görüyoruz. Linux’ta bu tür komutları arka plana kolaylıkla gönderebiliriz.
Çalışan komutları Linux arka planına göndermek için Ctrl + Z tuşlarına birlikte basmanız ve ardından bg komutunu kullanmanız yeterlidir. Ctrl + Z tuşlarına basmak çalışan komutu durduracak ve bg komutu onu arka plana gönderecektir.
- Linux arka planında çalışan işlemlerin listesini görmek için jobs komutunu kullanabilirsiniz.
- Linux’ta arka planda bulunan komutu ön plana aktarmak için fg komutundan yardım alabilirsiniz.
- Arka planda çalışan birden fazla komutunuz varsa fg komutundan sonra n% komutunu kullanabilirsiniz. Bu Linux komutundaki n karakteri, istediğiniz komutun karakteristiği veya kimliğidir. Örneğin komut 2’yi Linux’un arka planına getirmek için gerekli komut aşağıdaki gibidir:
fg %2
- Bir komutu sonlandırmak için, kill komutundan sonra benzer şekilde % komutunu komut kimliğiyle birlikte kullanın:
kill %2
3. Linux komutlarını nohup aracılığıyla arka plana gönderme
Linux komutlarını arka planda çalıştırmanın üçüncü yolu olan nohup komutu, kullanıcıların HUP veya Hang Up sinyallerinden etkilenmeyen komutları çalıştırmasına olanak tanır.
Nohup Linux komutu aynı zamanda bir Linux programını arka planda çalıştırmanın en kolay yollarından biridir. Aşağıdaki Linux komutu arka planda bir Nmap bağlantı noktası taraması çalıştırır :
nohup sudo nmap -sS --top-ports=15 192.168.1.1/24
Nohup’un en iyi avantajlarından biri komutlarınızın kabuktan çıktıktan sonra bile çalışabilmesidir. Ek olarak, bu komut, komutun yürütülmesine ilişkin bir günlük dosyası oluşturacak ve bunu geçerli dizininizdeki veya $HOME içindeki nohup.out dosyasına yerleştirecektir.
4. Komutu Linux arka planında çalıştırmak için Sistem Yönlendirmelerini kullanma
Linux ortamında, programı Linux arka planında çalıştırmak için Sistem Yönlendirmelerini de kullanabiliriz. Örneğin, aşağıdaki ping komutunu çalıştırdıktan sonra , kabuk onu Linux arka planında çalıştıracak ve terminalin kontrolünü bize geri verecektir:
ping -c5 8.8.8.8 > output.log 2>&1 &
Bu komutun açıklamasında komutun çıktıyı çıktı.log dosyasına yönlendireceği söylenmelidir. Bir çıktı dosyasına ihtiyacınız yoksa, çıktı.log’u dev/null/ ile değiştirebilirsiniz.
1&<2 ifadesi bash’a tüm hataları aynı dosyaya yönlendirmesini söyler. Komutun sonundaki & karakteri ayrıca Bash’e bu komutu arka planda çalıştırmasını söyler.
5. Disown kullanarak Linux komutlarını arka planda çalıştırmak
disown, Linux komutlarının arka plana gönderilmesini çok kolaylaştırır. Öncelikle & karakterini kullanarak komutu arka plana gönderiyoruz ve ardından komut içerisine disown yazarak kabuktan ayırıyoruz.
gedit & disown
Nohup gibi reddetmenin avantajlarından biri de, oturumu kapattıktan veya kabuğu kapattıktan sonra sistemin gelen görevi sonlandırmayacağıdır.
6. Linux arka planında komutları çalıştırmak için screen ve tmux komutlarını kullanma
tmux, kullanıcının tek bir pencerede birden fazla terminal oturumu çalıştırmasını sağlayan güçlü bir ayırıcıdır.
tmux new -d 'ping -c 10 8.8.8.8 > output.log'
Yukarıdaki tmux komutunu çalıştırdığınızda ping komutunu ayrı bir kabukta çalıştıracak ve arka planda çalışmaya devam edecektir. Bu yöntemle herhangi bir Linux işlemini veya komutunu arka planda çalıştırabilirsiniz.
Linux’taki screen komutu da tmux ile aynı işleve sahiptir. Screen ile bir oturum başlatmak için aşağıdakileri yapabiliriz:
$ screen -S <session_name>
Bu komutta <session_name> kısmını oturum adınızla değiştirin. Şimdi bu işlemin terminal penceresinden bağlantısını kesmek için Ctrl + a tuşlarına ve ardından D tuşuna basın. Artık işlem arka planda çalışacaktır.
Screen komutuyla Linux arka planına gönderilen bir komutu arka plandan ön plana döndürmek için aşağıdaki komutu çalıştırın:
screen -r session_name
7. Linux komutlarını arka planda çalıştırmak için systemd komutunu kullanmak
Başlangıç sistemi olarak systemd’yi kullanan modern Linux dağıtımlarında , komutları arka plana taşımak ve bunları sistem hizmeti olarak yönetmek için systemd’yi kullanabilirsiniz.
Linux komutlarını arka planda yürütmeye yönelik bu yöntem, kullanıcıya zaman alan görevleri yürütme sürecini yönetmede daha fazla kontrol ve esneklik sağlar. Systemd komutunun kullanımı aşağıdaki gibidir:
1) Hizmet birimi oluşturmak:
Hizmet uzantısını kullanma . Bir servis birimi dosyası oluşturuyoruz. Bu dosya, arka plan işleminin özelliklerini ve davranışını tanımlar. Örnek olarak myprocess.service adında bir dosya oluşturuyoruz:
sudo nano /etc/systemd/system/myprocess.service
2) Gerekli konfigürasyonları ekleyin:
İhtiyacımız olan konfigürasyonları servis ünitesi dosyasına ekliyoruz. Örneğin:
[Unit]
Description=My Background Process
After=network.target
[Service]
ExecStart=/path/to/myprocess
Type=simple
Restart=always
[Install]
WantedBy=default.target
Yukarıdaki örnekte path/to/myprocess/ yerine arka planda çalıştırmayı düşündüğümüz komut veya scripti yazmamız gerekiyor.
3) Dosyayı kaydedin:
Dosyayı kaydedin ve metin düzenleyicisinden çıkın.
4) Sistemi yeniden yükleyin:
Yeni hizmet birimi dosyasını okumak için systemd’yi yeniden yükleyin:
sudo systemctl daemon-reload
5) Komutu arka planda systemd ile çalıştırmak:
Systemd kullanarak komutumuzu arka planda çalıştırıyoruz:
sudo systemctl start myprocess
Artık komutumuz başlatıldı ve Linux’un arka planında bir sistem servisi olarak bağımsız olarak çalışacak.
son söz
Linux’un arka planında komut yürütme yeteneğine sahip olmak, sistem yönetimini kullanıcılar için verimli hale getirir. Linux arka planında çalışacak görevleri ve komutları çeşitli yollarla gönderebilirsiniz.
& ve Ctrl + Z düğmeleri gibi Bash özelliklerinin kullanımı kolaydır, ancak diğer yandan sistem, kabuğu kapatırken veya kabuktan çıkarken veya tabiri caizse görevleri kapatacaktır.
Öte yandan, nohup ve disown gibi araçlar, kabuktan çıktıktan veya oturumu kapattıktan sonra komutunuzun çalışmaya devam etmesini sağlar. Yani ihtiyaçlarınıza göre Linux komutlarını arka planda çalıştırmak için bu 7 yöntemden birini seçin.
Komutları uzun süre Linux’un arka planında tutmamaya dikkat edin çünkü bunların zombi süreçlere dönüşme ihtimali vardır. Zombi süreçleri sistemi yavaşlatır.
Bu nedenle zaman zaman Linux’un arka planında çalışan komutları kontrol edin ve zombiye dönüşen komutları öldürün.