Yürütmeniz gereken daha önemli görevleriniz olduğu için devam eden bir görevi askıya almak zorunda kaldığınız ve daha sonra bir önceki göreve devam etmek istediğiniz bir durumla hiç karşılaştınız mı?
Aslında, iki sonlandırma sinyali kullanılarak oldukça kolay bir şekilde yapılabilir ve yapılabilir: STOP ve CONT.
Ve bu kılavuzda, Linux’ta süreci yeniden askıya alıp devam ettirmek için size adım adım yol göstereceğiz.
Linux’ta süreci askıya alma
Süreci askıya almak için iki seçeneğiniz var:
- Ctrl + Z kısayolunu kullanma (ön planda çalışan bir işlem için)
- STOP sinyali ile kill komutunu kullanma
“Askıya alınmış bir işlem terminalde durdurulmuş olarak gösterilir. Bu kafanızı karıştırabilir ancak ‘durdurulan işlem’ yeniden başlatılabilir. Sonuçta durdurma (SIGSTOP) ile sonlandırma (SIGTERM) arasında fark vardır.”
1. Bir ön plan işlemini askıya alma
Size görebileceğiniz bir örnek verelim. Firefox’u komut satırından şu komutla çalıştırıyoruz:
firefox
Tarayıcı çalışır ve terminalde bazı garip çıktılar görebilirsiniz. Sorun yok.
Şimdi ön planda çalışan Firefox işlemini Ctrl+z terminal kısayolu ile askıya alıyoruz:
Ctrl+z
Ve işte olan şey. Firefox işlemi askıya alındı ve bunu terminalde görebilirsiniz. Birkaç saniyelik gecikmenin ardından, Firefox tarayıcısının artık yanıt vermediğini bildiren bir iletişim kutusu açılır.
💡
Ctrl+Z tuşları bir ön plan işlemini durdurur (askıya alır), Ctrl+C tuşları ise onu sonlandırır.
2. STOP sinyali göndererek bir işlemi askıya alın
İşlem arka planda çalışırken Ctrl + Z kısayolunu kullanamazsınız. Bu durumda, kill komutunu kullanmanız gerekir.
Bunu bir örnekle görelim. Uyku komutunu çok uzun süre çalıştırıyoruz ancak komuta “&” ekleyerek arka planda çalıştırıyoruz.
sleep 4949 &
Jobs komutunu kullanarak arka plan işlemlerini doğrulayabilirsiniz:
jobs
Örnekte işlem kimliğini görebiliyoruz. İşlem kimliğini bulmanın çeşitli yolları vardır. İşlem adı üzerinde ps komutunu ve grep’i kullanabilirsiniz.
İşlem kimliğine sahip olduğunuzda, aşağıdaki şekilde kill komutunu kullanarak işlemi askıya alabilirsiniz:
kill -STOP <PID>
Örneğimizde, PID 26589’dur, o zaman aşağıdaki komutu kullanmamız gerekir:
kill -STOP 26589
Ve gördüğünüz gibi işlem başarıyla durduruldu.
Süreci tekrar sürdürmek
📋
Askıya alınan bir işlemi sürdürmek için klavye kısayolu yoktur.
İşlemi sürdürmek için, aşağıdaki gibi kill komutuyla CONT bayrağını kullanmanız gerekir:
kill -CONT <PID>
Örneğimizde, PID 26589’du, o zaman komut şöyle olurdu:
kill -CONT 26589
Ve gördüğünüz gibi, işleme devam ettikten sonra, sürecin olması gerektiği gibi çalıştığını gösteren jobs komutunu kullandık.
Yazının orijinalini buradan okuyabilirsiniz.