Linux Arkaplanda Kod Çalıştırma: Nohup Kullanımı

Emre Nogay · · Linux

Linux arkaplanda kod çalıştırma işlemi istiyor olmamızın farklı sebepleri olabilir. Uzun süren işlemler veya arkaplanda bir süreliğine çalışmasını istediğim işlemler için nohup komutunu kullanıyorum. Kullanımı gayet basit. Nohup ile Linux dağıtımlarında arkaplanda kod çalıştırarak, yeni bir oturum açmadan işlemin arkaplanda yapılmasını sağlayabiliyoruz.

Nohup Kullanımı

Kullanım amaçları farklı olabilir mesela Python, PHP ile çalıştırdığınız bir linux komutunun çıktısını da nohup sayesinde kontrol edebiliriz.

nohup sh script_dosyaniz.sh &

Aşağıdaki örnekle, çalıştırdığınız dosyanın ürettiği çıktıları bir dosyaya aktarabilirsiniz.

nohup sh script_dosyaniz.sh > script_output.log &

Kullanımı bu kadar kolay. Yukarıda Python veya PHP ile çalıştırıp çıktısını almaktan bahsetmiştim. script_dosyaniz.sh dosyasının ürettiği çıktı, script_output.log dosyasına yazılacağı için, bu dosyaya file_get_contents veya farklı bir şekilde erişim ekrana yazdırabilirsiniz.

Arkaplanda çalışma emri verdiğiniz komutun durumunu görmek için jobs -l komutunu kullanabilirsiniz.

Linux arkaplanda kod çalıştırma, Nohup ile bu kadar basit. Eğer bir sorunuz olursa benimle iletişime geçmekten çekinmeyin.

Yorumlar

"Linux Arkaplanda Kod Çalıştırma: Nohup Kullanımı" yazısı için 2 yorum bulundu

Emre hocam yazıda PHP ile çalıştırdığınız kodun çıktısını nohup ile kontrol edebileceğimizi yazmışsınız. Bunu nasıl yapabilirim örnek kod paylaşır mısınız?

Yanıtla

Merhaba, Makalede verdiğim 2. örnekte .log uzantılı dosyayı "tail" komutu ile izleyebilirsiniz. İşte bir örnek;

$output = shell_exec('tail -n 50 /home/dir/script_output.log 2>&1; echo $?');
var_dump($output);
Yukarıdaki örneği bir PHP sayfasına koyup, bu sayfasına Ajax ile 2-3 saniyede bir istek göndererek çıktıyı kontrol edebilirsiniz. Her istekte script_output.log dosyasının son 50 satırını yazacaktır.

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnternet bağlantınız kesintiye uğradı.